use strict;
use warnings;
use diagnostics;
package MAP;
use Exporter ();
our $VERSION = 1.00;
our @ISA = qw( Exporter );
our @EXPORT = ();
our @EXPORT_OK = qw( get_game_maps );
sub get_game_maps
{
# Declare Variables
my ($game) = @_;
my $user = $ENV{'USER'};
# Create Dir Path
my $dir = "/home/$user/hlds_l/$game/maps/";
# We're done if the dir does not exist.
return unless -d $dir;
opendir(my $maps_dh, $dir) || die("Cannot open directory");
my @maps = readdir($maps_dh);
closedir($maps_dh);
# Take only maps and trim .bsp
@maps = grep /\.bsp\z/, @maps;
foreach my $map (@maps)
{
$map =~ s/\.bsp\z//;
}
return @maps;
}
1;
# end
####
#!/usr/bin/perl5
use strict;
use warnings;
use diagnostics;
# Load Module
use MAP;
# Call Routine
my @cstrike_maps = MAP::get_game_maps("cstrike");
# Print returned array
foreach my $map (@cstrike_maps)
{
print "$map\n";
}
####
use List::Util qw( apply );
sub get_game_maps
{
my ($game) = @_;
my $user = $ENV{'USER'};
my $dir = "/home/$user/hlds_l/$game/maps/";
# We're done if the dir does not exist.
return unless -d $dir;
opendir(my $maps_dh, $dir)
or die("Cannot open directory");
return apply { s/\.bsp\z// }
grep { /\.bsp\z/ }
readdir($maps_dh);
}