Perl Getopt long Problem

Hallo Leute!

ich habe mich ein bisschen in Perl eingearbeitet und stecke gerade fest.
hier der Code:

Code:
my $search;
my $file


if (@ARGV < 1)  {
    usage();
    }

GetOptions ( 
    's=s' => \&filter,
    'h' => \&usage,
    'f' => \&nix,
);


sub filter {
chomp $file;
print "search string : \n";
$search = <STDIN>;
chomp $search;
    
    open (DATA, "<$file") or die "can't open";
        while (<DATA>)  {
            if (m/$search/)  {
                print $_; 
            }            
        }
    }


Der Parameter -s ist verbunden mit der Funktion Filter, da wird auch ein String verlangt, ich will aber das der String der Pfad zu der Datei sein soll die geöffnet werden soll, nicht um die Burg raff ich das, ich spiele mich hier schon einige Stunden rum, komm Leider auf kein Ergebnis, kann sich mal jemand den Code anschauen und mir vielleicht helfen ?

Danke
 
Danke für die Antwort, ich will aber das nach dem Parameter '-s' das Argument der Pfad zu einer Datei ist... also soll die Funktion ausgeführt werden ohne eine Vordefinierten Pfad.

ich habe mich schon durch viele, Manpages und Perldocs durch gewühlt, bin normalerweise eher einer der lange selbst rum probiert ... aber hier, greif ich mir einfach nur an den Kopf...
 
und wie wird dann die Funktion ausgeführt? er nimmt zwar dann den Parameter '-s' aber die funktion wird nicht ausgeführt, wie kann ich dann die Variable stringPath zu dem Sub filter linken ?
 
Das ist der Haken :D

Check das:


my $stringPath = '';

GetOptions (

's=s' => \$stringPath,
'a' => sub{myfunction($stringPath);}
);

sub myfunction
{

my $LocalstringPath=shift;
...
}
 
Zurück
Oben