BEG: $0 z bashe a krajeni
Matej Cepl
cepl na surfbest.net
Pondělí Srpen 19 12:10:54 MEST 2002
Dobrý den,
jsem začátečník s perlem (zatím jsem pracoval jenom s bashem a trochu s
Pythonem, ale ten mi připadne drobátko overkill na spoustu věcí) a měl bych
dva dotazy, které se mi nepodařilo rozluštit z toho, co jsem úvodních
materiálů, které jsem na webu potkal.
1) Co je v $_[0] při spuštění skriptu? Podle logiky bashe (a mám pocit, že
perl je tak trochu "advanced bash" což se mi na něm docela líbí) by to měl
být název skriptu, ale to co jsem našel mi tvrdí, že to je první argument
skriptu (jak jste jistě pochopili, v tomto okamžiku nemám žádný perl po ruce
a nechce se mi stahovat 10MB+ po telecomím telefonu; ke svému počítači s
Linuxem se dostanu až asi za dva týdny).
To jest, co udělá tento kousek skriptu?
if (`basename $_[0]` eq 'pdfvlnlatex') {
$prog = 'pdflatex';
}
else {
$prog = 'latex';
}
Existuje nějaká interní verze bashovského basename?
2) Nejsem si úplně jist s argumentem \1 v příkazu s. Mám-li tento kousek
skriptu (na krájení emailové zprávy):
foreach $msg (@_) {
$_ = $msg;
s/^Subject:\s*(.*)\n/\1/;
chomp;
... další zpracování ...
}
mám výsledně v $_ subject zprávy?
Děkuji moc a omlouvám se za začátečnické dotazy (a za to, že mám dvě otázky
v jedné zprávě).
Matěj Cepl
Další informace o konferenci Perl