#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Fcntl qw(:flock); # import LOCK_* and SEEK_END constants $| = 1; my @value; my @value_2; my $i = 0; sub first { foreach my $argnum (0 .. $#ARGV) { open (READ, "<" , $ARGV[$argnum]) or die ("Could not open: ".$ARGV[$argnum]." - $!\n"); flock(READ, LOCK_EX) or die "Could not lock '".$ARGV[$argnum]."' - $!\n"; if (-z "".$ARGV[$argnum]."") { print READ "is empty!\n"; # -z File has zero size (is empty). } print "This is the \$ARGV[$argnum]: ".$ARGV[$argnum]."\n"; while ( my @doc_read = ) { chomp @doc_read; foreach $_ (@doc_read) { my @result = split (':', $_); if (/^\s*$/) { # /^\s*$/ check for "blank" lines may contain spaces or tabs next; } push (@{ $value[$i++] }, $result[3]); } $i = 0 if eof; } close (READ) or die ("Could not close: ".$ARGV[$argnum]." - $!\n"); } return @value; } sub second { foreach my $arg (@_) { open (READ, "<" , $arg) or die ("Could not open: ".$arg." - $!\n"); flock(READ, LOCK_EX) or die "Could not lock '".$arg."' - $!\n"; if (-z "".$arg."") { print READ "is empty!\n"; # -z File has zero size (is empty). } print "This is the \$arg: ".$arg."\n"; while ( my @doc_read = ) { chomp @doc_read; foreach $_ (@doc_read) { my @result = split (':', $_); if (/^\s*$/) { # /^\s*$/ check for "blank" lines may contain spaces or tabs next; } push (@{ $value_2[$i++] }, $result[3]); } $i = 0 if eof; } close (READ) or die ("Could not close: ".$arg." - $!\n"); } return @value_2; } my @result = &first(); my @result_2 = &second(@ARGV); print "\nValues \@result\n"; print "@$_\n" for @result; print "\nValues \@result_2\n"; print "@$_\n" for @result_2;