in reply to deleting a non-numeric scalar within array
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!
|
|---|