sar123 has asked for the wisdom of the Perl Monks concerning the following question:
Here I am trying to print some text between two patterns inside the `getsub` routine. But when I try to run this I enter the subroutine but doesn't enter the if block inside the subroutine. I am trying to run it on the following file:#!/usr/bin/perl -w use warnings; use diagnostics; open $fh , "<", "$ARGV[0]" or die "Could not open file: $!"; sub getsub{ my $sub = $_[0]; print "sub entered for $sub\n"; while (<$fh>) { if (/\.subckt $sub/../\.ends/) { print ; } } } while (<$fh>) { if ($_ =~ /^xa1/) { $line = $_; print "line found to be $line\n"; while ((my $nxt = readline($fh)) =~ /^\+/) { $line = $nxt; print "line changed to $line\n"; } $line =~ s/\s+$//; print "last line is $line\n"; my $sub = (split '\s', $line)[-1]; print "subcircuit found is $sub in $line\n"; getsub($sub); } }
I want to print the contents of the file between ".subckt a1" till ".ends"..subckt a1 x y z xa a b c1 xb c d e1 xc f g h1 .ends .subckt c1 x y z xa a b f xb c d e xc f g h .ends .subckt e1 x y z xa a b c1 xb c d k1 xc f g h1 .ends xa1 a s f a1
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Variable not set properly in perl
by Athanasius (Archbishop) on Sep 28, 2014 at 16:17 UTC | |
by sar123 (Novice) on Sep 28, 2014 at 19:27 UTC | |
by Athanasius (Archbishop) on Sep 29, 2014 at 03:32 UTC | |
by frozenwithjoy (Priest) on Sep 28, 2014 at 19:45 UTC | |
|
Re: Variable not set properly in perl
by Anonymous Monk on Sep 28, 2014 at 19:55 UTC | |
|
Re: Variable not set properly in perl (SPICE)
by toolic (Bishop) on Sep 29, 2014 at 12:22 UTC |