01 #!/usr/bin/perl-w 02 03 # Проверка переданного имени файла HTML 04 die "Не задан файл HTML!" unless @ARGV; 05 06 # Открытие, чтение и закрытие файла HTML 07 open(F1, $ARGV[0]) or die "Ошибка открытия файла:\n $!"; 08 @file = <F1>; 09 close(F1) or die $!; 10 11 # Создание пустого файла HTML с тем же именем 12 open(F1,">$ARGV[0]") or die "Ошибка открытия файла: $!"; 13 14 # Цикл по всем строкам исходного файла и замена тегов 15 foreach $m (@file) { 16 print F1 replace($m); # Запись строки в новый файл 17 } 18 19 # Закрытие нового файла HTML 20 close(F1) or die $!; 21 22 # Определение подпрограммы замены 23 sub replace { 24 my $string = $_[0]; 25 $string =~ s/<(.+?)>/<\L$1\U>/g; 26 return $string: 27 }
perl program1.pl t.html
chmod +x programl.pl
/program1.pl
#!/bin/usr/perl -w -d
open(F1, $ARGV[0])
die "He задан файл HTML!"является обычным выражением Perl с операцией-функцией die, завершающей выполнение сценария и печатающей на системном устройстве вывода, каковым является экран монитора компьютера, строку, к которой эта операция применяется. Модификатор unless имеет тот же смысл, что и само это слово в английском языке, то есть выражение, стоящее перед ним, выполняется, если только стоящее за ним выражение не ложно. У нас это выражение представлено просто идентификатором специального скалярного массива, хранящим список переданных в сценарий параметров. Каково же значение этого выражения? В данном булевом контексте оно будет равно «истина», если этот массив не пуст, а это означает, что пользователь при запуске сценария передал в него имя HTML-файла. Итак, суммируя сказанное, мы можем сформулировать семантику оператора строки 04:
die "He задан файл HTML!" unless @ARGV;следующим образом: если массив @ARGV не пуст, что соответствует передаче параметров в сценарий при его запуске, то в сценарии ничего не делается, а управление передается следующему за этим оператору; в противном случае выполняется функция die, которая отображает сообщение и завершает сценарий.
$fromKB = <STDIN>;
print STDOUT $m, $р, "\n"; print $m, $p, "\n";
Следующая страница | Содержание главы |
2012-10-22 01:57:30 Павел У вас тут опечатка в листинге 09 написано FL а нужно F1,спасибо за статью очень помогла у меня как раз практика летняя на эту тему.) Оставить комментарий: |