If you know two slightly less well known things about Perl then you can:
#!/usr/bin/perl use strict; use warnings; open my $hostsIn, '<', "/etc/hosts" or die "Cannot open hosts file! \n +"; my @hosts = <$hostsIn>; close $hostsIn; foreach my $line (@hosts) { next if $line !~ /($ARGV[0])/; print $line; $line = undef; }
For that to make sense you need to know that delete sets an array element to undef (that is a lie, but it suffices at present - see the linked docs) and that the loop variable is an alias to the list elements being iterated over by a for loop.
Note too the use of strictures (use strict; use warnings; - see The strictures, according to Seuss), lexical file handles and the three parameter open. Getting into the habit of using these techniques will save you a lot of time and frustration!
In reply to Re: deleting a non-numeric scalar within array
by GrandFather
in thread deleting a non-numeric scalar within array
by pipeops
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |