chinamox: FWIW, it can be a little tough to help without seeing your data.
Try something like this:
while( my $line = <DATA> ){ ... } ... __DATA__ sample input data
Having said that, you've got a trailing }, so that's an issue.
open (WORDS, 'data.txt') or die "Can't open employees2.txt: $!\n"; my @cols = qw('data.txt');
I'm not sure what you're doing there - your error message ought to reflect the name of the file it's having trouble with. And your @cuts @cols array contains one element, a piece of text 'data.txt'. I don't think that's what you want. Also, your regexes are matching against $_, when you want them to match against $cut, the next element of @words.
Finally, I've reformatted your code, made it compile, and looped through the words of each line (which you weren't doing), and left the "meat" of your "algorithm" in place. Though that could be cleaned up, too.
#!/usr/local/bin/perl use strict; use warnings; while (my $line = <DATA>) { chomp $line; for my $cut( split /\s+/, $line ){ next if $cut !~ /a/; next if $cut !~ /e/; next if $cut !~ /i/; next if $cut !~ /o/; next if $cut !~ /u/; print "$cut\n"; } } __DATA__ sample line with words input more words thiswordhaseveryvoul so it should print butthisdoesnt nor do these
Output:
$ perl chinamox.pl thiswordhaseveryvoul
HTH
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)
In reply to Re: Passing a $Scaler into a while loop...
by chargrill
in thread Passing a $Scaler into a while loop...
by chinamox
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |