use strict; use warnings; my %seen = (); my $flag = 0; my (@nonprod_lpars, @lparstat, $clntdir); my $regexp_2_skip = qr/entitled capacity of pool/i; my $regexp_2_get = qr/entitled capacity|desired Virtual CPU|desired Memory|online Virtual CPU|maximum Virtual CPU|maximum memory|online memory/i; my @asof; sub _ce { print "IN CE SUB\n"; die "no parameter!\n" unless @_; my ($ce_ref) = @_; for my $name (@{ $ce_ref }) { #@asof = +(split("/", $name, 0))[-3,-2,-4]; #$lpname = +(split("/", $name, 0))[3]; #print $csv "$lpname\n"; #print $csv '*' x length($lpname),"\n"; #print '*' x length($lpname),"\n"; print "$name\n"; open (my $i, "+<", $$name) or warn $!; ### FAILS HERE ### while (<$i>) { chomp $i; next if $i =~ /$regexp_2_skip/; next if $i !~ /$regexp_2_get/; ($i) =~ s/:/,/g; ($i) =~ s/\s+//g; #print $csv "$i,\n"; print "$i,\n"; } } #print $csv "\n\nHost,Entitled CPU and RAM as of,\n\n"; return; } @lparstat = ('1','2','3'); _ce(\@lparstat); #### open (my $i, "+<", $$name) or warn "Failed to open '$$name': $!"; ### FAILS HERE ###