Schrift
[thread]12741[/thread]

Perl interactive ausführen



<< >> 3 Einträge, 1 Seite
hever
 2008-11-10 13:54
#116160 #116160
User since
2003-09-13
2 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo zusammen,

ich möchte über netcat mit folgendem Perl script kommunizieren:

Code (perl): (dl )
1
2
3
4
5
#!/usr/bin/perl

print "Hello\n";
my $input = <>;
print "You said: $input\n";


Code: (dl )
Server$ nc -l -p 65000 -c "perl hello.pl"


Code: (dl )
1
2
3
4
Client$ nc localhost 65000
test
Hello
You said: test


Wie man sieht kann ich zwar Daten eingeben, die Ausgabe wird jedoch abgefangen und erst am Scriptende ausgegeben.

Das Problem ist, dass das Script nicht interaktiv läuft:

if( -t STDIN && -t STDOUT )

liefert false.

Ersetze ich das Perl Script durch ein bash script, klappts.

Wie kann ich Perl interactiv schalten?
Ich finde keine geeigneten Kommandozeilenargumente oder Code-Beispiele....

Vielen Dank für eure Tipps.
hever
 2008-11-10 14:10
#116161 #116161
User since
2003-09-13
2 Artikel
BenutzerIn
[Homepage] [default_avatar]
$| = 1;

ist was ich brauchte.

(http://perldoc.perl.org/perlvar.html)

hever+2008-11-10 12:54:29--
Code (perl): (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl

$| = 1;

print "Hello\n";
my $input = <>;
print "You said: $input\n";



Code: (dl )
1
2
3
4
Client$ nc localhost 65000
Hello
test
You said: test
GwenDragon
 2008-11-10 14:13
#116162 #116162
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Korrekt.
Perl puffert erst einmal die Ausgabe und sendet sie später.
<< >> 3 Einträge, 1 Seite



View all threads created 2008-11-10 13:54.