#!/usr/bin/perl use strict; use Data::Dumper; eval q{use warnings;} or local $^W=1; my @SSS = (); OUTER: while (my $line = <DATA>) { chomp $line; if( @SSS ){ if( $line =~ /Daily Windows:/i ) { while($line = <DATA>) { if ($line =~ /schedule:\s+(\S+)/i){ push @SSS, { 'Schedule' => $1 }; next OUTER; }elsif($line =~/\w+\s+\d\d\:\d\d\:/){ my( $fDay, $fTime, $tDay, $tTime ) = grep/$_/,spli +t /\s+|-->/,$line; push @{$SSS[-1]->{ 'Windows' }}, [ $fDay, $fTime, $tDay, $tTime ]; } } }else{ my($a,$b) = split /\:/, $line, 2; $SSS[-1]->{ $a } = $b; } }elsif($line =~ /schedule:\s+(\S+)/i) { push @SSS, { 'Schedule' => $1 }; } } print Dumper \@SSS; __DATA__ Schedule: Full Type: Full Backup Frequency: every 1 day Retention Level: 2 (5 weeks) Maximum MPX: 1 Residence: (specific storage unit not required) Volume Pool: (same as class volume pool) Daily Windows: Saturday 02:00:00 --> Saturday 12:00:00 Schedule: CINC Type: Cumulative Incremental Backup Frequency: every 1 day Retention Level: 2 (5 weeks) Maximum MPX: 1 Residence: (specific storage unit not required) Volume Pool: (same as class volume pool) Daily Windows: Sunday 02:00:00 --> Sunday 12:00:00 Monday 02:00:00 --> Monday 12:00:00 Tuesday 02:00:00 --> Tuesday 12:00:00 Wednesday 02:00:00 --> Wednesday 12:00:00 Thursday 02:00:00 --> Thursday 12:00:00 Friday 02:00:00 --> Friday 12:00:00
$VAR1 = [
{
' Volume Pool' => ' (same as class volume pool)',
' Type' => ' Full Backup',
' Residence' => ' (specific storage unit not required)',
'Windows' => [
[
'Saturday',
'02:00:00',
'Saturday',
'12:00:00'
]
],
' Retention Level' => ' 2 (5 weeks)',
'Schedule' => 'Full',
' Maximum MPX' => ' 1',
' Frequency' => ' every 1 day'
},
{
' Volume Pool' => ' (same as class volume pool)',
' Type' => ' Cumulative Incremental Backup',
' Residence' => ' (specific storage unit not required)',
'Windows' => [
[
'Sunday',
'02:00:00',
'Sunday',
'12:00:00'
],
[
'Monday',
'02:00:00',
'Monday',
'12:00:00'
],
[
'Tuesday',
'02:00:00',
'Tuesday',
'12:00:00'
],
[
'Wednesday',
'02:00:00',
'Wednesday',
'12:00:00'
],
[
'Thursday',
'02:00:00',
'Thursday',
'12:00:00'
],
[
'Friday',
'02:00:00',
'Friday',
'12:00:00'
]
],
' Retention Level' => ' 2 (5 weeks)',
'Schedule' => 'CINC',
' Maximum MPX' => ' 1',
' Frequency' => ' every 1 day'
}
];
____________________________________________________
** The Third rule of perl club is a statement of fact: pod is sexy.
In reply to Re: Positional Pattern-Matching
by PodMaster
in thread Positional Pattern-Matching
by blink
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |