Task1
We take the first character of each string and join them, then we check for equality of the resultant string with the check string (both case-folded):
#!/usr/bin/env perl
use strict;
use warnings;
sub acronym{
CORE::fc (join '',map{substr $_,0,1}@{$_[0]}) eq CORE::fc $_[1];
}
printf "%d\n",acronym(["Perl", "Python", "Pascal"],"ppp");
printf "%d\n",acronym(["Perl", "Raku"],"rp");
printf "%d\n",acronym(["Oracle", "Awk", "C"],"oac");
Task2
We index the array with the array itself, since Perl allows multiple indexing like Fortran,APL,J,K,Matlab etc...
#!/usr/bin/env perl
use strict;
use warnings;
sub build_array{
@{$_[0]}[@{$_[0]}];
}
printf "(%s)\n", join ',', build_array([0,2,1,5,3,4]);
printf "(%s)\n", join ',', build_array([5,0,1,2,3,4]);
No comments:
Post a Comment