Thread Wie findet das Perlscript meinen Ordner!? (15 answers)
Opened by lin at 2010-09-27 20:31

Gast wer
 2010-09-29 11:30
#141555 #141555
if ($#ARGV < 0) { ist mir zu umständlich. Ich würde so prüfen:unless(@ARGV) {
Außerdem würde ich anstatt den Scriptnamen selber rein zu schreiben $0 verwenen, dann kann man auch das Script umbenennen oder über einen Link aufrufen und bekommt immer die richtige Fehlermeldung.
Man kann auch die verwenden um das Programm abzubrechen. Das hat den Vorteil, dass man den Code eventuell auch über eval starten kann und dann nur der das eval abgebrochen wird.
Wenn es um Dateinamen geht kann man das auch etwas anders schreiben:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings;

use HTML::TokeParser;

my $file = shift(@ARGV) or die "Usage: '$0 <filename>'\n";

my $p = HTML::TokeParser->new($file) or die "Can't open: '$ile' ($!)\n";

...

Das funktioniert weil ein Dateiname selten die zahl '0' ist, allso ein String, der nicht als "unwahr" interprtiert wird. Wenn nichts in @ARGV ist $file=undef und damit "unwahr" der Teil hinter dem or wird ausgeführt.
Bei komplexeren Sachen würde ich CPAN:Getopt::Long nutzen
Last edited: 2010-09-29 11:39:31 +0200 (CEST)

View full thread Wie findet das Perlscript meinen Ordner!?