in reply to Re: Empty string checking in output
in thread Empty string checking in output

tulic , i tried that but the else block is not executing. i can explain the behavior of the cisco device if a particular command is not present... if i telnet into cisco device it will show as

2960#
here at this prompt i want to check one command i.e
2960#sh run | in ntp
if the configuration is not present then it will show as same
2960#
so at this time the in array @output doesn't contain anything but i dont know why the else block is not executing

Replies are listed 'Best First'.
Re^3: Empty string checking in output
by AnomalousMonk (Archbishop) on Aug 17, 2011 at 06:32 UTC
    ... the in array @output doesn't contain anything but ... the else block is not executing ...

    ... because, contrary to what you think, the  @output array contains something. Try printing/dumping the contents of the array. Also, what code are you actually running?

    >perl -wMstrict -le "my @output = (); ;; if (@output) { print qq{true clause: array not empty}; } else { print qq{false clause: array empty}; } " false clause: array empty

      yes,i executed the block of code above its printing "true clause: array not empty" but how to find exactly what is there in that?i wrote dis code to check a configuration in cisco devices.

        One way (there are many 'data dumpers'). Note: you must pass a reference to the array to the Dumper function.

        >perl -wMstrict -le "use Data::Dumper; my @output = qw(1 2 foo); print Dumper \@output; " $VAR1 = [ '1', '2', 'foo' ];

        See Data::Dumper.