in reply to executing the following lines of a script if the value of an elemnt in an array changes
Your code is pretty awful, as is your explanation of what you want to do. But as you have put in some effort....
It is hard to know where to begin but I suggest you have a look at New Monks. Here is some code you should be able to get working much easier. It does roughly what you want (I think)
#!/perl/bin -w use strict; # do you opens like this. no hard coded names. $! contains error messa +ges if # the open fails so print out perls helpful message # my $log = "tasco2.log"; # open LOG, $log or die "Can not open $log, Perl says the reason is $! +\n"; # define model types in a hash lookup table my %modhash = ( 9 => "no connect", 18 => "21000bps", 20 => "V34", 28 => "29333bps", 31 => "33333bps", 34 => "V90 digital", 39 => "44000bps", 40 => "45333bps", 43 => "49333bps", 44 => "50666bps", 45 => "V92 PCM Upstream", ); my $sessidlast = 0; my $newsession = 0; my $modtypelast = ''; while (my $line = <DATA> ) { chomp $line; my @temp = split /\s*=\s*/, $line; if ($temp[1] > 100) { # we have a session id my $sessid = $temp[1]; do { $newsession = 0; next } if $sessid == $sessidlast; $sessidlast = $sessid; $newsession = 1; print "\n$sessid\t"; } else { # we have a modtype next unless $newsession; # skip if we don't have a new session my $modtype = $temp[1]; next if $modtype == $modtypelast; $modtypelast = $modtype; print get_modtype($modtype), "\t"; } } sub get_modtype { my $modtype = shift; if (defined $modhash{$modtype}) { return $modhash{$modtype} . "\t"; } else { return "Unknown modtype $modtype!\t"; } } __DATA__ x.x.nas.6.9.1.1.40.1001 = 1134468706 x.x.nas.6.9.1.1.14.1001 = 9 x.x.nas.6.9.1.1.13.1001 = 16 x.x.nas.6.9.1.1.12.1001 = 16 x.x.nas.6.9.1.1.40.1001 = 1134468706 x.x.nas.6.9.1.1.14.1001 = 34 x.x.nas.6.9.1.1.13.1001 = 19 x.x.nas.6.9.1.1.12.1001 = 30 x.x.nas.6.9.1.1.40.1001 = 1134485731 x.x.nas.6.9.1.1.14.1001 = 45 x.x.nas.6.9.1.1.13.1001 = 16 x.x.nas.6.9.1.1.12.1001 = 16 x.x.nas.6.9.1.1.40.1001 = 1134485733 x.x.nas.6.9.1.1.x.x = 9
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
|
|---|