File extension is in extensions list: Difference between revisions

add Perl
(→‎{{header|Fortran}}: Follow the new requirements.)
(add Perl)
Line 564:
{{out}}
<pre>%1 = ["text.txt", "text.TXT", "test.tar.gz", "test/test2.exe", "foo.c", "foo.C", "foo.C++", "document.pdf"]</pre>
 
=={{header|Perl}}==
 
Does the extra credit requirement.
 
{{trans|Perl 6}}
 
<lang perl>sub check_extension {
my ($filename, @extensions) = @_;
my $extensions = join '|', map quotemeta, @extensions;
scalar $filename =~ / \. (?: $extensions ) $ /xi
}</lang>
 
Testing:
<lang perl>my @extensions = ('zip', 'rar', '7z', 'gz', 'archive', 'A##', 'tar.bz2');
my @files= (
'MyData.a##', 'MyData.tar.Gz', 'MyData.gzip', 'MyData.7z.backup',
'MyData...', 'MyData', 'MyData_v1.0.tar.bz2', 'MyData_v1.0.bz2'
);
printf "%-19s - %s\n",
$_, check_extension($_, @extensions) ? 'true' : 'false'
for @files;</lang>
 
{{out}}
<pre>
MyData.a## - true
MyData.tar.Gz - true
MyData.gzip - false
MyData.7z.backup - false
MyData... - false
MyData - false
MyData_v1.0.tar.bz2 - true
MyData_v1.0.bz2 - false
</pre>
 
 
=={{header|Perl 6}}==
Anonymous user