Net::Telnet with no prompt
I am writing a Perl script which connects to a socket and sends some standard AT command. I created the script first using Socket::INET but soon realised that the socket wasnt a raw data socket but actually ran Telnet.
I therefore started using Net::Telnet but I am having some problems here. I think the problem is because the telnet session does not give me a prompt so Net::Telnet times out. I tried changing the Prompt option to /^$/, //, "", and anything I can think of but I still cant get it to work. Can someone provide me with a sample of how to get Net::Telnet to work without needing a prompt, just do it on a per line basis?
This is what a normal connection would look like.
Nothing complicated, just send one line, receive one, send another, receive another etc.
I think I need to set cmd_remove_mode to 1 as well as the device echoes back everything I send it.
In worst case I will have to go back to Socket::INET but I would perfer not to as I then have to ignore garbage I get back and ignore every second response which is my own echo etc.
Thanks in advance!
1. tell us exactly what the fail symptoms are. Show example.
2. use warnings and strict
1. The symptoms are as follows, if I use the above code, then $line will be empty if I dont use the debugger (-d). If I do and step through the same code $line contains OK and the if statement matches and I get "Line: OK" printed to the screen.
Any other of the ~10 examples of Net::Telnet I have found on google gives me a "command timed-out at line X". The one I posted above I set errmode to return so that it would not die when it fails but then I get the symptoms I described above.
2. I tried adding warnings as you suggested and I then get these errors,
Use of uninitialized value in pattern match (m//) at ./fb4 line 16.
Use of uninitialized value in pattern match (m//) at ./fb4 line 17.
Adding strict and declaring my variables still gives same result.
According to this: http://search.cpan.org/~jrogers/Net-.../Net/Telnet.pm you should prob be using cmd() instead of print(). Also, looks like you're 'suffering from buffering', see this
|All times are GMT -5. The time now is 12:29 PM.|