Учебное пособие по CGI-программированию


         

она означает что вторая строка


глобальная(по всей строке) замена -опция g; Пример:

$x="This is test"; $x=~s/ /_/g; print $x; #This_is_test


Очень полезная опция у s/// e - она означает что вторая строка не строка а выражение, результат которого и будет подставлен. Например,у вас есть файл в котором все записи о возрасте через год надо менять

open(OLD,"oldfile.txt") die "Cannot open oldfile.txt $!\n"; open(NEW,">newfile.txt") die "Cannot open newfile.txt $!\n"; foreach(){ s/(\d+)(\s+год)/($1+1).$2/gie; s/(\d+)(\s+лет)/($1+1).$2/gie; print NEW $_; } close(NEW); close(OLD);


или более показательным примером послужит функция urldecode,которая будет встречатс в каждой вашей программе,обрабатывающей формы:

sub urldecode{ local($val)=@_; $val=~s/\+/ /g; $val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge; return $val; }


Также важным удобством в Perl являются операции для работы с файлами для выполнения схожих функций в других языках приходиться проделывать огромную массу работы. Аргументами могут быть как Файловые переменные,так и строки,представляющие имя файла.
ОперацияОписаниеПример использоввания
-rДоступен для чтенияunless(-r "myfile"){print "Cannot read myfile\n";}
-wДоступен для записи
-xДля исполнения
-oПринадлежит пользователюif(-o "index.htm"){chmod(0777,"index.htm");}
-RДоступен для чтения реальным
пользователем,а не только "эффективным".
Имеет значения для set-uid -скриптов
if(-r FILE){unless(-R FILE){die "Its not allowed to read this\n";}}
-WДоступен для записи реальным пользователем
-XДоступен для исполнения реальным пользователем
-OПринадлежит реальному пользователю
-eФайл или каталог Существуетunless(-e $htmlfile){
open(HTML,">$htmlfile");
print HTMLFILE "<HTML><BODY></BODY></HTML>";
close(HTMLFILE);
}
-zСуществует,но имеет нулевую длинуif(-z 'tmpfile'){unlink('tmpfile');}
-sРазмер файла в байтахsystem("rar m -m5 archive.rar $myfile") if -s $myfile > 1000;
-fФайл существует и является простым файлом
-dФайл существует и является каталогомif(-d 'public_html'){chdir('public_html');}
-lСимволической ссылкой
-pКаналом FIFO
-uИмеет бит установки пользователя
-gИмеет бит установки группы
-kУстановлен sticky-бит
-tЯвляется терминальным устройством
-MВремя с последнего изменения (в днях)while(defiled($file=glob('*'))){
if(-M $file >= 7.0){
  unlink($file);#удаляем слишком старые файлы
  }
}
-AВремя последнего доступа(в днях)if(-A "$ENV{'HOME'}/public_html/index.html" < -A "$ENV{'HOME'}/.last"){print "Кто-то ходил на твою домашнюю страничку пока тебя не было!!!\n";}
-CВремя последнего обновления файлового индекса(в днях)
<

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий