Taking information from the file that results entry after entry within this format: IPAddress x x [date:time -x] "method url httpversion" statuscode bytes "referer" "useragent"

How does one start being able to access that file like a command-line argument and storing that information to ensure that you can push the button alphabetically through the IP addresses and keep all the information together? I suppose I will have to use hashes and arrays in some way.

You can theoretically have as numerous text files as you would like as command-line arguments but to date I've not become that part to operate, I simply have:

./logprocess.pl monster.log #monster.log is the file that contains entries

then within the code, assume all variables not specified happen to be declared as scalars

my $x = 0;
my @hashstuff;
my $importPage = $ARGV[0];
my @pageFile = `$importPage`;
foreach my $line (@pageFile)

    $ipaddy, $date, $time, $method, $url, $httpvers, $statuscode, $bytes, $referer, $useragent =~ m#(\d+.\d+.\d+.\d+) \S+ \S+ [(\d+/\S+/\d+):(\d+:\d+:\d+) \S+] "(\S+) (\S+) (\S+)" (\d+) (\d+) "(\S+)" "(\S+ \S+ \S+ \S+ \S+)"#
    %info = ('ipaddy' => $ipaddy, 'date' => $date, 'time' => $time, 'method' => $method, 'url' => $url, 'httpvers' => $httpvers, 'statuscode' => $statuscode, 'bytes' => $bytes, 'referer' => $referer, 'useragent' => $useragent);
    $hashstuff[$x] = %info;

There's certainly an easy method to get this done, as my compiler states I've global symbol errors like:

Ambiguous utilization of % resolved as operator % at ./logprocess.pl line 51 (#2) (W ambiguous)(S) You stated something that won't be construed the way in which you thought. Normally it's pretty simple to disambiguate it by delivering military services weapons quote, operator, parenthesis pair or declaration.

also it will not execute. I can not use any modules.

When the log is created by Apache, you can use Apache::ParseLog module. Take a look at good examples in the finish from the page for inspiration.

Concerning the error you mention, you need to declare your array with my:

my @hashstuff;

and adding there a references. Also single item is utilized with $hashstuff[$x] (note the dollar at the start):

$hashstuff[$x] = { %info };

or eliminate $x completely:

push @hashstuff, { %info };