Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Perl: User Input trotz Pipe

Diskussion: Perl: User Input trotz Pipe im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi, ich habe ein Perl Skript geschrieben, das über STDIN per Pipe seinen Input bekommt. Dann möchte ich aber ...

Antwort
Alt 26.12.10, 22:36   #1 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard Perl: User Input trotz Pipe

Anzeige

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:

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
Serow ist offline   Mit Zitat antworten
Alt 27.12.10, 10:37   #2 (permalink)
 
Registriert seit: 12.08.10
mime Leistung: Pentium Imime Leistung: Pentium I
Likes: 30
Standard

Zitat:
Zitat von Serow Beitrag anzeigen
Kann man da irgendwas machen?
STDIN schliessen und neu öffnen.

Code:
#!/usr/bin/perl -w
use strict;
use warnings FATAL => 'all';

# read stuff from stdin
my @lines = <STDIN>;
close(STDIN);

# ask user something
print "What do you think? :";

open STDIN, '<&1' or die "Error open STDIN: $!";
my $answer = <STDIN>;

print "ANSWER: $answer\n";
HTH

Micha
__________________
http://www.openvas.org
mime ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 27.12.10, 16:37   #3 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Hi,

vielen Dank! Da hätte ich auch drauf kommen können

ciao
serow
Serow ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Perl: User Input trotz Pipe
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61