|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Dennis Krupenik 2:5020/400 05 Feb 2003 15:55:03 To : Artem Chuprina Subject : Re: sites -------------------------------------------------------------------------------- Здравствуй, Artem! Tue, 4 Feb 2003 18:02:01 +0000 (UTC) ты написал мне примерно вот это: МЕ>>> В php все решалось просто: в начале каждой страницы МЕ>>> include("header.php"); , в конце include("footer.php"); DK>> в перле не менее просто: DK>> require "header.pl"; DK>> ... DK>> require "footer.pl"; AC> В такой схеме - do. Я бы сказал, что require делает неявный do: $perldoc -f require ... sub require { my($filename) = @_; return 1 if $INC{$filename}; my($realfilename,$result); ITER: { foreach $prefix (@INC) { $realfilename = "$prefix/$filename"; if (-f $realfilename) { $INC{$filename} = $realfilename; $result = do $realfilename; last ITER; } } die "Can't find $filename in \@INC"; } delete $INC{$filename} if $@ || !$result; die $@ if $@; die "$filename did not return true value" unless $result; return $result; } ... а выбор do вместо require можно мотивировать необходимостью включать код HЕСКОЛЬКО раз. в контексте header и footer мне это в голову не пришло. Денис Крупеник. dennis@uapeople.com --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/16171ebf908da.html, оценка из 5, голосов 10
|