diff options
| -rw-r--r-- | challenge-316/kjetillll/perl/ch-1.pl | 7 | ||||
| -rw-r--r-- | challenge-316/kjetillll/perl/ch-2.pl | 19 |
2 files changed, 26 insertions, 0 deletions
diff --git a/challenge-316/kjetillll/perl/ch-1.pl b/challenge-316/kjetillll/perl/ch-1.pl new file mode 100644 index 0000000000..cd70fcb616 --- /dev/null +++ b/challenge-316/kjetillll/perl/ch-1.pl @@ -0,0 +1,7 @@ +sub f { "@_" !~ /(.) (?!\1)/ } + +print f("perl", "loves", "scala") ? "ok\n" : "error\n"; # true +print ! f("love", "the", "programming") ? "ok\n" : "error\n"; # false +print f("java", "awk", "kotlin", "node.js") ? "ok\n" : "error\n"; # true +print f("ISI","I","IJK","KAREN") ? "ok\n" : "error\n"; # true +print ! f("ISI","I","KJK","KAREN") ? "ok\n" : "error\n"; # false diff --git a/challenge-316/kjetillll/perl/ch-2.pl b/challenge-316/kjetillll/perl/ch-2.pl new file mode 100644 index 0000000000..22c9aee3f6 --- /dev/null +++ b/challenge-316/kjetillll/perl/ch-2.pl @@ -0,0 +1,19 @@ +#Makes a regexp out of the first string by putting .* behind each char +#and match that against the second input string. + +sub f { pop =~ m|@{[ pop =~ s/./\Q$&\E.*/gr ]}| } + +print f( "uvw", "bcudvew" ) ? "ok\n" : "error\n"; # true +print ! f( "aec", "abcde" ) ? "ok\n" : "error\n"; # false +print f( "sip", "javascript" ) ? "ok\n" : "error\n"; # true +print ! f( "ae.", "abcdef" ) ? "ok\n" : "error\n"; # false +print f( "ae.", "abcde.f" ) ? "ok\n" : "error\n"; # false +print f( "ae.x(", "abcdef.kx(+" ) ? "ok\n" : "error\n"; # false + +#regexp allergy? +sub f2 { + my @substr = split//, shift; + my @str = split//, shift; + $_ eq $substr[0] and shift @substr for @str; + !@substr +} |
