use strict;
use warnings;
use v5.14;
my @require=qw(prescer sunscreen water_bottle jacket);
my %gilligan = map {$_,1}qw(red_shirt hat lucky_socks water_botter);
foreach my $item (@require)
{
say "Gilligan is missing $item" unless $gilligan{$item};
}
print '-' x 80,">\n";
my %professor = map {$_,1}qw(sunscreen water_bottle slide_rule batteries radio);
foreach my $item (@require)
{
say "Professor is missing $item" unless $professor{$item};
}
print '-' x 80,">\n";
sub check_requrie_item
{
my $who = shift;
my %who_item = map {$_,1}@_;
my @require=qw(prescer sunscreen water_bottle jacket);
foreach my $item (@require)
{
say "$who is missing $item" unless $who_item{$item};
}
}
my @Gilligan_new=qw(red_shirt hat lucky_socks water_botter);
&check_requrie_item("Gilligan_new",@Gilligan_new);
use strict;
use warnings;
my $ref;
{
my @skipper =qw(blue_shirt hat jacket preserver sunscreen);
$ref = \@skipper;
&sp();
print "\@skipper : @skipper\n";
print "$ref->[2]\n";
&sp();
}
print "$ref->[2]\n";
push @$ref,'newtest';
print "\$ref : @$ref\n";
my @all_names;
sub initialize_provisions_list
{
my @Skipper=qw(blue_shirt hat jacket preserver sunsreen);
my @Skipper_name=("Skipper",\@Skipper);
my @Professor=qw(sunscreen water_bottle slide_rule batteries radio);
my @Professor_name=('Professor',\@Professor);
my @Gilligan=qw(red_shirt hat lucky_socks water_bottle);
my @Gilligan_name=('Gilligan',\@Gilligan);
@all_names=(
\@Skipper_name,
\@Professor_name,
\@Gilligan_name
);
}
&initialize_provisions_list();
my @all_names2;
sub initialize_provisions_list2
{
my @Skipper=qw(blue_shirt hat jacket preserver sunsreen);
my @Skipper_name=("Skipper",\@Skipper);
my @Professor=qw(sunscreen water_bottle slide_rule batteries radio);
my @Professor_name=('Professor',\@Professor);
my @Gilligan=qw(red_shirt hat lucky_socks water_bottle);
my @Gilligan_name=('Gilligan',\@Gilligan);
return (
\@Skipper_name,
\@Professor_name,
\@Gilligan_name
);
}
@all_names2 = &initialize_provisions_list2();
my $gilligan_stuff = $all_names2[2][1];
@all_names2 = undef;
print "@$gilligan_stuff\n";
&sp();
sub sp
{
print '-' x 80,">\n";
}
my @skipper_with_names;
{
my @skipper=qw(blue_shirt hat jacket preserver sunscreen);
@skipper_with_names=('The Skipper',\@skipper);
}
my $ref_to_skipper_provisions= [qw(blue_shirt hat jacket preserver sunscreen)];
print "@$ref_to_skipper_provisions\n";
&sp();
my $ref_new_skipper;
{
my @temporay_name=(qw(blue_shirt hat jacket preserver sunscreen));
$ref_new_skipper=\@temporay_name;
}
my $ref_new_test = [qw(blue_shirt hat jacket preserver sunscreen)];
my @new_skipper_name = ('The skipper',$ref_new_test);
print "$new_skipper_name[1]->[0]\n";
print "@{$new_skipper_name[1]}\n";
&sp();
my @skipper_new=(
'The Skipper',
[qw(blue_shirt hat jacket preserver sunscreen)]
);
sub get_list
{
return (
['The Skipper',[qw(blue_shirt hat jacket preserver sunscreen)]],
['The Professor',[qw(sunscreen water_bottle slide_rule batteries radio)]],
['The Gilligan',[qw(red_shirt hat lucky_sockes water_bottle)]],
);
}
my @new_list=\&get_list();
print "@{@{${$new_list[0]}}[1]}\n";
&sp();
my %gilligan_name=(
name => 'Gilligan',
hat => 'White',
shirt => 'Red',
postion => 'First Mate',
);
my %skipper_name=(
name => 'Skipper',
hat => 'Black',
shirt => 'Blue',
postion => 'Captain',
);
my @crew_name=(\%gilligan_name,\%skipper_name);
foreach my $value (@crew_name)
{
print "====> $value\n";
foreach my $key (sort keys %{$value})
{
print "$key ${$value}{$key}\n";
}
}
&sp();
my $ref_to_gilligan;
{
my %gilligan_info=(
name => 'Gilligan',
hat => 'White',
shirt => 'Red',
postion => 'First Mate',
);
$ref_to_gilligan=\%gilligan_info;
}
my $gilligan_new_info={
name => 'Gilligan',
hat => 'White',
shirt => 'Red',
postion => 'First Mate',
};
my $skipper_new_info={
name => 'Skipper',
hat => 'Black',
shirt => 'Blue',
postion => 'Caption',
};
my @new_crew_name=($gilligan_new_info,$skipper_new_info);
foreach my $arrary (@new_crew_name)
{
print "=====> $arrary\n";
foreach my $key (sort keys %{$arrary})
{
print "$key => ${$arrary}{$key}\n";
}
}
&sp();
my @new_arrary=(
{
name => 'Skipper',
hat => 'Black',
shirt => 'Blue',
postion => 'Caption',
},
{
name => 'Gilligan',
hat => 'White',
shirt => 'Red',
postion => 'First Mate',
},
);
foreach my $value (@new_arrary)
{
print "=======> $value\n";
foreach my $key (sort keys %{$value})
{
print "$key =>", $value->{$key},"\n";
}
}
&sp();
my %provisions;
my $person;
open(FL,'<','./data') or die "Cant open './data':$!\n";
while(<FL>)
{
if(/^(\S.*)/)
{
$person=$1;
$provisions{$person}=[] unless $provisions{$person};
}elsif(/^\s+(\S.*)/)
{
die "No persopn" unless defined $person;
push @{$provisions{$person}},$1;
}else
{
die "I don't unerstand:$_\n";
}
}
push @{$provisions{'The Skipper'}},"test";
push @{$provisions{'new'}},qw(test1 test2 test3 test4);
foreach my $key (sort keys %provisions)
{
print "====> $key\n";
foreach my $val (@{$provisions{$key}})
{
print "$val ";
}
print "\n";
}
&sp();
my %total_bytes;
open(DFL,'<','./data1') or die "Cannt open file './data1':$!\n";
while(<DFL>)
{
my ($source,$destionation,$bytes)=split;
$total_bytes{$source}{$destionation} +=$bytes;
}
foreach my $key1 (sort keys %total_bytes)
{
print "key1 =====> $key1\n";
foreach my $key2 (sort keys %{$total_bytes{$key1}})
{
print "$key2 => $total_bytes{$key1}{$key2}\n";
}
}
&sp();