batva
crazy administrator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору alexei Цитата: Нет разницы, он ведь после сплита все равно делает chomp для последнего елемента с \n. | ну вы ребята даете. попробую более доходчиво. Код: $filetoopen = "$ikondir" . "mostpop.cgi"; open (MOST, "$filetoopen"); @sod = <MOST>; close (MOST); | итак, в массиве @sod у нас каждый элемент, это строка файла mostpop.cgi строка заканчивается на \n далее Код: foreach $mostpop (@sod) { ($forumpop, $topicpop, $topicpoptitle, $viewpop, $timepop, $memberpop) = split(/\|/, $mostpop); | $mostpop это элемент массива @sod, тобишь строка, которая заканчивается на \n После сплита в переменной $memberpop получается некое значение плюс \n И потом Код: в данном случае резать конечный перевод строки в $mostpop нет смысла, ибо $mostpop уже рассплитована. далее. посмотрим еще раз на этот кусок кода. Код: foreach $mostpop (@sod) { ($forumpop, $topicpop, $topicpoptitle, $viewpop, $timepop, $memberpop) = split(/\|/, $mostpop); chomp $mostpop;} | что мы тут видим? Ха, видим перебор массива, сплитование строки, и возврат к итерации. если в массиве несколько элементов, то при выходе всегда получаем расплитованный последний элемент (последнию строку файла mostpop.cgi), тогда позвольте, а зачем нам тогда гонять цикл???? Не проще взять сразу последний элемент массива и его сплитовать? Далее, судя по коду, в файле всего то одна строка, всегда. Тогда тем более не понятно, зачем вообще нужны эти выкрутасы c циклами и массивом? |