your array @allwords is empty hence foreach loop would never execute
you will still have an empty hash after the foreach loop
thus the last statement won't cause any difference and @allwords would still be empty
if you had some entries in @allwords say,
Code:
my @allwords = qw/a b c d a/;
my %seen=();
foreach my $curr (@allwords) {
$seen{$curr} = 1;
}
@allwords = keys %seen;
the foreach loop will assing each element of the array @allwords as a key to %seen hash and each key would have 1 as it's value i.e.,
Code:
$seen{$a}=1
$seen{$b}=1
$seen{$c}=1
$seen{$d}=1
$seen{$a}=1 #already exists so would be discarded
however, on the last iteration when $curr is a again, your hash already has a key a with value as 1, so it won't allow a duplicate entry and last element of @allwords would be discarded
Code:
@allwords = keys %seen;
keys %seen would return ('a','b','c','d') and assign it to @allwords
hence, in short your code here would remove any duplicate entries in an array
Njoy!!
This User Gave Thanks to sam05121988 For This Post:
your array @allwords is empty hence foreach loop would never execute
you will still have an empty hash after the foreach loop
thus the last statement won't cause any difference and @allwords would still be empty
if you had some entries in @allwords say,
Code:
my @allwords = qw/a b c d a/;
my %seen=();
foreach my $curr (@allwords) {
$seen{$curr} = 1;
}
@allwords = keys %seen;
the foreach loop will assing each element of the array @allwords as a key to %seen hash and each key would have 1 as it's value i.e.,
Code:
$seen{$a}=1
$seen{$b}=1
$seen{$c}=1
$seen{$d}=1
$seen{$a}=1 #already exists so would be discarded
however, on the last iteration when $curr is a again, your hash already has a key a with value as 1, so it won't allow a duplicate entry and last element of @allwords would be discarded
Code:
@allwords = keys %seen;
keys %seen would return ('a','b','c','d') and assign it to @allwords
hence, in short your code here would remove any duplicate entries in an array
Njoy!!
THANK YOU!!!
---------- Post updated at 11:39 ---------- Previous update was at 11:39 ----------
Hello,
A former sys admin placed this script on one of our boxes and it needs to be adjusted, but I'm not familiar with perl. Can someone help break this down for me? I'm particularly interested in the -mtime function. What's the time frame being referenced here.
... (5 Replies)
Hi,
I need to understand below perl code, can some one advise me.
perl -MDate::Parse -e'BEGIN{$main::now=time;$main::old=(time-60*30)}' -nE'if(/^(\w+\s+\d+\s+\d+:\d+:\d+)/) {$t=str2time $1; $t > $old && $t < $now && print}' (1 Reply)
Hi all,
I am trying to build threads which will go to localhost and list the files in given folder.
#!/usr/bin/perl
use threads;
my $t1 = threads->new(\&sub1, 1);
my $t2 = threads->new(\&sub2, 2);
push(@threads,$t1);
push(@threads,$t2);
foreach... (5 Replies)
What is the difference between the two statements below?
A:
$a->{"$fruit"}->{"$color"}->{size} = $size
B:
$size = $a->{"$fruit"}->{"$color"}->{size}
Please assist. Thanks! (0 Replies)
Well, I found myself trying to fix some Perl code (Ive never done any Perl in my life) and I pinpointed the place where the bug could be. But to be sure I have to know what does a few line of code mean:
$files_lim =~ (/^\d*$/)
$files_lim =~ (/^\d*h$/)
$files_age =~ s/h//
The code where... (2 Replies)
Well, I found myself trying to fix some Perl code (Ive never done any Perl in my life) and I pinpointed the place where the bug could be. But to be sure I have to know what does a few line of code mean:
$files_lim =~ (/^\d*$/)
$files_lim =~ (/^\d*h$/)$files_age =~ s/h//The code where this was... (0 Replies)
can someone help me how to interpret this line?
my ($class, $hashref) = @_;
my $portfolio = {};
if ($hashref->{portfolio_id}) {
($portfolio) = GEmySQL->get ("select * from portfolio where portfolio.id=$hashref->{portfolio_id}");
}
===============
Question: how do... (2 Replies)
Hi All,
Can you please help me interpret the following command. Which I am not able to understand. Also can you please illustrate what it is used for.
perl -pi -e 's/\015//g' text_file.dat
Regards (3 Replies)
Hello All,
I have some expression:
if (/^(\d\d\d\d\d\.\d\d\d\d\d\d)\s+(.+)$/)
{
warn "$argv0(" . __LINE__ . "): rbl2ts{$2} == '$rbl2ts{$2}' \$1==$1\n" if ($debug);
$rbl2ts{$2} = $1 if (!defined($rbl2ts{$2}) or ($1 le $rbl2ts{$2}));
warn "$argv0(" . __LINE__ . "):... (3 Replies)
I solicited this site earlier this week and got a good answer for a perl
Script so I made this script from what understood from the answers
But now I have a bug and I'm stump. It doesn't parse correctly the
Output it stays on the first line My $f2 and reprints in a endless loop
I'm sure there... (3 Replies)