Читать по одной строке файла
Пример 2
#!/usr/local/bin/perl open(PASS, "</etc/passwd") || die "Файл не найден!"; while(<PASS>) { print; } close(PASS); Пояснения:
open(PASS, "</etc/passwd") || die "Файл не найден!"; "Открыть" файл, т.е. создать указатель файла PASS, и в случае ошибки выдать "Файл не найден!" и закончить программу.
while(<PASS>) Читать по одной строке файла в переменную по умолчанию $_.
{ Открыть блок операторов.
print; Вывести на экран переменную по умолчанию $_
}
Конец блока.
close(PASS); Закрыть файл. Этого можно и не делать, т. к. файл автоматически закроется после окончания программы.
Результат работы этой программы тот же что и команды cat /etc/passwd. По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Perl программирования! Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала).
Пример 2
@var1 # Все элементы массива var1 ( $var1[0], $var1[1], ... $var1[n])
@var1[1,3,10] # Элементы $var1[1], $var1[3], $var1[10]
@var1{'first','last'} # то же что и ( $var1{'first'}, $var1{'last'} )
Хеш "целиком" начинается с символа '%'.
Пример 2
chmod 0666 'f1', 'f2', 'f3';
Пример 2
print 4**2 # Результат 16
print -4**2 # Результат -16 т.е. -(4**2)
Пример 2
$s = "1+2-3*4"; if ($s =~ /(\d)(?=-)/) # Найти цифру за которой стоит '-' { print "$1\n"; # Результат '2' } else { print "ошибка поиска\n";}
(?!шаблон) - "заглядывание" вперед по отрицанию.
Пример 2
Пример 2
$var = 1; $var2 = 3 if $var > 0; # Результат: $var2 = 3
while EXPR - Модификатор "пока". Предложение выполняется пока EXPR = true