A major problem with your code are these lines:

if ($neighbor eq undef){} elsif ($vcid eq undef) {} else {

undef can NOT be used in a comparison, you have to use the defined function to determine if a variable is defined or not.

You also don't need the if/elsif/else structure:

if ( !defined $neighbor && !defined $vcid ) {

Another problem is a lot of "uninitialized value" messages which can be fixed by initializing all your variables.

my $vcid; my $tag; my @splittag; my $pop; my $xcon; my $cos; my @splitcos; # change those to: my $vcid = ''; my $tag = ''; my @splittag; my $pop = ''; my $xcon = ''; my $cos = ''; my @splitcos;
$unit = $splitunit[2]; # change to: $unit = $splitunit[2] || '';
$vlanida = $splitvlan[2]; $vlanidb = $splitvlan[4]; # change to: $vlanida = $splitvlan[2] || ''; $vlanidb = $splitvlan[4] || '';
$cos = $splitcos[2]; # change to: $cos = $splitcos[2];
$neighbor = $splitxc[1]; $vcid = $splitxc[2]; # change to: $neighbor = $splitxc[1] || ''; $vcid = $splitxc[2] || '';
$pop = $splittag[4]; # change to: $pop = $splittag[4] || '';
if ($neighbor eq undef){} elsif ($vcid eq undef) {} else { # change to: if ( length $neighbor && length $vcid ) {

Try running your code with those changes and post again with your feedback.


In reply to Re: Cisco to Juniper - parser help by jwkrahn
in thread Cisco to Juniper - parser help by jamescmatt

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.