blob: f88288d2b19213db7807ea93c2c8e267e12d1e57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/usr/bin/perl
# Perl Weekly Challenge - 063
#
# Task 1 - Last Word
#
# Author: Niels 'PerlBoy' van Dijke
use strict;
use warnings;
# Prototype
sub last_word($$);
printf "%s\n", last_word(' hello world', qr/[ea]l/); # 'hello'
printf "%s\n", last_word("Don't match too much, Chet!", qr/ch.t/i); # 'Chet!'
printf "%s\n", last_word("spaces in regexp won't match", qr/in re/) // '(undef)'; # undef
printf "%s\n", last_word( join(' ', 1..1e6), qr/^(3.*?){3}/); # '399933'
sub last_word ($$) {
my ($line, $re) = @_;
foreach my $word (reverse split(/\s+/, $line) {
return $word if ($word =~ /$re/);
}
return undef;
}
|