caltuntas has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I am learning perl new, and Ijust joined to this club. I need urgent help. My problem is I have to send Ctrl+D characters via telnet.pm. My code is as follows :

Should somebody help me, please.

se Net::Telnet (); $t = new Net::Telnet (Errmode => "return"); $node = "10.200.247.178 5691" ; {{ $t->open("$node")} print "$node baglanildi\n"; $t->print("CON_REQ[alcatel]"); ## Wait for second prompt and re +spond with city code. @Lines1 = $t->print("^d"); print "@Lines1\n"; sleep (3); ##$t->waitfor('/CON_CONF[]/'); @Lines2 = $t->print("LIST_PM_FTP_REQ[15|2006060321|2006060416|{}|D +XC_MT2{}]"); ## Read and print the first page of forecast. $t->print("^d"); print "@Lines2\n"; sleep (3); ##$t->waitfor('//'); $t->print("^]"); $t->close; }

20060620 Janitored by Corion: Added formatting, code tags, as per Writeup Formatting Tips

Replies are listed 'Best First'.
Re: send ascii character in telnet.pm
by Moron (Curate) on Jun 20, 2006 at 12:58 UTC
    It is conventional to describe control characters in uppercase, e.g. 'CTRL-D', also because the shift to the control character set is achieved by unsetting the seventh bit, e.g.:
    print Control("G"); # ring my bell sub Control { return chr( ord( uc( shift() ) ) - 64 ); }

    -M

    Free your mind

      A simpler option is to use the \c token:
      print "\cG"; # ring bell print "\cD"; # send EOF marker