perlのインストールモジュールを調べる

#! /usr/bin/perl
use strict;

my %mod_list;

listup($_) for grep {$_ ne '.'} @INC;
#print "$_?n" for sort keys %mod_list;
print "$_\n" for sort keys %mod_list;

sub listup {
    my ($base, $path) = @_;
#    (my $mod = $path) =? s!/!::!g;
    (my $mod = $path) =~ s!/!::!g;

    opendir DIR, "$base/$path" or return;
#    my @node = grep {!/^?.?.?$/} readdir DIR;
    my @node = grep {!/^\.\.?$/} readdir DIR;
    closedir DIR;

    foreach (@node) {
#        if (/(.+)?.pm$/) { $mod_list{"$mod$1"} = 1 }
        if (/(.+)\.pm$/) { $mod_list{"$mod$1"} = 1 }
        elsif (-d "$base/$path$_") { listup($base, "$path$_/") }
    }
}


[^][\]が[?]に化けていたのを修正。コメント箇所。