Note that there are some explanatory texts on larger screens.

plurals
  1. POhelp printing out hash keys to needed format
    text
    copied!<p>I need help printing out data from a hash/hash ref to STDOUT or file with data in a specific order if possible.</p> <p>I have a perl routine that uses hash references like so:</p> <pre><code>#!/usr/local/bin/perl use strict; use warnings; use File::Basename; use Data::Dumper; my %MyItems; my $ARGV ="/var/logdir/server1.log"; my $mon = 'Aug'; my $day = '06'; my $year = '2010'; while (my $line = &lt;&gt;) { chomp $line; if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/) { my $server = basename $ARGV, '.log'; my $BckupDate="$1 $year"; my $BckupSet =$2; $MyItems{$server}{$BckupSet}-&gt;{'MyLogdate'} = $BckupDate; $MyItems{$server}{$BckupSet}-&gt;{'MyDataset'} = $BckupSet; $MyItems{$server}{$BckupSet}-&gt;{'MyHost'} = $server; if ($line =~ m/(ERROR|backup-size|backup-time|backup-status)[:=](.+)/) { my $BckupKey=$1; my $BckupVal=$2; $MyItems{$server}{$BckupSet}-&gt;{$BckupKey} = $BckupVal; } } } foreach( values %MyItems ) { print "MyHost=&gt;$_-&gt;{MyHost};MyLogdate=&gt;$_-&gt;{MyLogdate};MyDataset=&gt;$_-&gt;{MyDataset};'backup-time'=&gt;$_-&gt;{'backup-time'};'backup-status'=&gt;$_-&gt;{'backup-status'}\n"; } </code></pre> <p>Output using dumper:</p> <pre><code>$VAR1 = 'server1'; $VAR2 = { 'abc1.mil.mad' =&gt; { 'ERROR' =&gt; ' If you are sure is not running, please remove the file and restart ', 'MyLogdate' =&gt; 'Fri Aug 06 2010', 'MyHost' =&gt; 'server1', 'MyDataset' =&gt; 'abc1.mil.mad' }, 'abc2.cfl.mil.mad' =&gt; { 'backup-size' =&gt; '187.24 GB', 'MyLogdate' =&gt; 'Fri Aug 06 2010', 'MyHost' =&gt; 'server1', 'backup-status' =&gt; 'Backup succeeded', 'backup-time' =&gt; '01:54:27', 'MyDataset' =&gt; 'abc2.cfl.mil.mad' }, 'abc4.mad_lvm' =&gt; { 'backup-size' =&gt; '422.99 GB', 'MyLogdate' =&gt; 'Fri Aug 06 2010', 'MyHost' =&gt; 'server1', 'backup-status' =&gt; 'Backup succeeded', 'backup-time' =&gt; '04:48:50', 'MyDataset' =&gt; 'abc4.mad_lvm' } }; </code></pre> <p>Output formatted that I would like to see:</p> <pre><code>MyHost=&gt;server1;MyLogdate=&gt;Fri Aug 06 2010;MyDataset=&gt;abc2.cfl.mil.mad;backup-time=&gt;Fri Aug 06 2010;backup-status=&gt;Backup succeeded </code></pre> <p>Just addded (8/7/2010): Sample raw log file I am using: (recently added to provide better representation of the source log)</p> <pre><code>Fri Aug 06 00:00:05 2010: abc2.cfl.mil.mad:backup:INFO: backup-set=abc2.cfl.mil.mad Fri Aug 06 00:00:05 2010: abc2.cfl.mil.mad:backup:INFO: backup-date=20100806000004 Fri Aug 06 00:48:54 2010: abc4.mad_lvm:backup:INFO: backup-size=422.99 GB Fri Aug 06 00:48:54 2010: abc4.mad_lvm:backup:INFO: PHASE END: Calculating backup size &amp; checksums Fri Aug 06 00:48:54 2010: abc4.mad_lvm:backup:INFO: backup-time=04:48:50 Fri Aug 06 00:48:54 2010: abc4.mad_lvm:backup:INFO: backup-status=Backup succeeded Fri Aug 06 00:48:54 2010: abc4.mad_lvm:backup:INFO: Backup succeeded </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload