Проблема со split (perl)?

Пытаюсь с помощью split разбить строку ($myline) вида:
+1,-2,+5 на подстроки по запятой, но все падает с ошибкой:
eef252d789d84c5595c6fc6c7039a376.png
Код:
if ($myline ne '.') {
      @tmp_users = split(/\,/, $myline);
      foreach $tmp_user (@tmp_users) {
        switch (split($tmp_user, 0, 1)) {
          case '+'  {
            print '+++', $tmp_user,'\n';
          }
          case '-'  {
            print '-', $tmp_user,'\n';
          }
          else {
            if (isdigit $tmp_user) {
              print '_', $tmp_user,'\n';
              @users = (@users, $username[$tmp_user]);
            } else {
              #  print 'else else cond_';
            }
          }
        }
      }
    } else {
      #изменений в составе команды проекта нет
      print 'ok';
    }


Если строка вида . или 1,9 то все отрабатывает нормально.
  • Вопрос задан
  • 2282 просмотра
Решения вопроса 1
замените
switch (split($tmp_user, 0, 1)) {
на
switch (substr($tmp_user, 0, 1)) {
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы