Hi,
ich habe ein Perl Skript geschrieben, das über STDIN per Pipe seinen Input bekommt. Dann möchte ich aber den User noch über die Kommandozeile nach etwas fragen, was leider nicht funktioniert. Hier ein Beispielcode um das Problem zu zeigen:
Kann man da irgendwas machen? Woran liegt das überhaupt? Ich vermute mal, dass er von der Pipe schon ein EOF bekommen hat oder sowas - die Interna kann ich nur raten.
ciao
serow
ich habe ein Perl Skript geschrieben, das über STDIN per Pipe seinen Input bekommt. Dann möchte ich aber den User noch über die Kommandozeile nach etwas fragen, was leider nicht funktioniert. Hier ein Beispielcode um das Problem zu zeigen:
Code:
mathias@x61t:~$ cat test.pl
#!/usr/bin/perl -w
use strict;
use warnings FATAL => 'all';
# read stuff from stdin
my @lines = <STDIN>;
# ask user something
print "What do you think? :";
my $answer = <STDIN>;
print "ANSWER: $answer\n";
mathias@x61t:~$ echo "hello world" | perl test.pl
Use of uninitialized value $answer in concatenation (.) or string at test.pl line 12, <STDIN> line 1.
What do you think? :mathias@x61t:~$
Kann man da irgendwas machen? Woran liegt das überhaupt? Ich vermute mal, dass er von der Pipe schon ein EOF bekommen hat oder sowas - die Interna kann ich nur raten.
ciao
serow