This program comes with several scripts which I would try to install in directory C:\cpanrun\build\5-10-0\bin. To skip, rerun with option -n given to Makefile.PL. Checking if your kit is complete... Looks good Writing Makefile for MP3::Tag Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp Tag.pm blib\lib\MP3\Tag.pm cp Tag/ID3v1.pm blib\lib\MP3\Tag\ID3v1.pm cp Tag/File.pm blib\lib\MP3\Tag\File.pm cp Tag/CDDB_File.pm blib\lib\MP3\Tag\CDDB_File.pm cp Tag/ParseData.pm blib\lib\MP3\Tag\ParseData.pm cp Tag/ID3v2.pm blib\lib\MP3\Tag\ID3v2.pm cp Tag/Inf.pm blib\lib\MP3\Tag\Inf.pm cp ID3v2-Data.pod blib\lib\MP3\ID3v2-Data.pod cp Tag/LastResort.pm blib\lib\MP3\Tag\LastResort.pm C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/typeset_audio_dir blib\script\typeset_audio_dir pl2bat.bat blib\script\typeset_audio_dir C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/mp3info2 blib\script\mp3info2 pl2bat.bat blib\script\mp3info2 C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/audio_rename blib\script\audio_rename pl2bat.bat blib\script\audio_rename Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/typeset_audio_dir blib\script\typeset_audio_dir pl2bat.bat blib\script\typeset_audio_dir C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/mp3info2 blib\script\mp3info2 pl2bat.bat blib\script\mp3info2 C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/audio_rename blib\script\audio_rename pl2bat.bat blib\script\audio_rename C:\cpanrun\build\5-10-0\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/interpolate....1..24 ok 1 # MP3::Tag initialized ok 2 # false conditional ok 3 # false ||-interpolation # `aacontentbb' ok 4 # I(f) interpolates ok 5 # I(fi) interpolates ok 6 # I(fi) interpolates with choice ok 7 # I(fi) interpolates with conditional with choice ok 8 # I(fi) interpolates in conditional ok 9 # %{frames} interpolates in conditional # `15h39m05.620' ok 10 # format time 56345.62 # `15h39m05' ok 11 # format time 56345 # `39m05.620' ok 12 # format time 2345.62 # `39m05' ok 13 # format time 2345 # `5.620' ok 14 # format time 5.62 # `5' ok 15 # format time 5 # `15h39m05.62s' ok 16 # format time 56345.62 # `15h39m05s' ok 17 # format time 56345 # `39m05.62s' ok 18 # format time 2345.62 # `39m05s' ok 19 # format time 2345 # `5.62s' ok 20 # format time 5.62 # `5s' ok 21 # format time 5 # `5.62s' ok 22 # format time 5.62 # `5.62s' ok 23 # format time 5.62 # `39m05.62s' ok 24 # format time 2345.62 ok t/mp3tag.........1..89 ok 1 # MP3::Tag initialized ok 2 # Detecting ID3v1 ok 3 # Detecting ID3v2 ok 4 # Reading ID3v1 ok 5 # Reading ID3v1/2 via Tag ok 6 # Reading ID3v1 comment via Tag ok 7 # Reading ID3v1 year via Tag ok 8 # Reading ID3v1 genre via Tag ok 9 # Reading ID3v2 ok 10 # Creating new ID3v1 ok 11 # Writing ID3v1 ok 12 # Changing ID3v1 ok 13 # Writing ID3v1 ok 14 # Creating new ID3v2 ok 15 # Writing ID3v2 ok 16 # Changing ID3v2 ok 17 # Writing ID3v2 complex timestamp ok 18 # Writing ID3v2 ok 19 # ID3v2 rounding size ok 20 # Checking new ID3v1 ok 21 # Checking new ID3v1 ok 22 # Checking new ID3v1 ok 23 # Checking new ID3v2 ok 24 # Checking multi-frame ID3v2 ok 25 # Checking multi-frame ID3v2 ok 26 # Checking no comment ok 27 # Checking timestamp(s) in ID3v2 ok 28 # Checking ID3v2 year ok 29 # Changing ID3v2 ''-comment ok 30 # Writing ID3v2 ok 31 # Checking any-language comment ok 32 # Setting ID3v2-comment ok 33 # Writing ID3v2 ok 34 # Checking any-language comment ok 35 # Checking no GER comment ok 36 # Checking ENG comment ok 37 # Checking ID3 comment # `%02t_Title: `000000000New'; ENG have GER , do not have TLAN02' ok 38 # Checking ID3 interpolation ok 39 # .inf file parsed ok 40 # Checking .inf title ok 41 # Checking .inf artist ok 42 # Checking .inf track ok 43 # Checking .inf album ok 44 # Checking .inf year ok 45 # Checking .inf comment ok 46 # Checking .inf comment+source ok 47 # Checking .inf comment source ok 48 # Checking interpolation: `file=test2.mp3___, File=C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\MP3-Tag\test2.mp3, %comment="Chiribim conducts Some Choir; recorded in Mariann", dir="MP3-Tag"' eq `file=test2.mp3___, File=C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\MP3-Tag\test2.mp3, %comment="Chiribim conducts Some Choir; recorded in Mariann", dir="MP3-Tag"' ok 49 # Checking filename method: ok 50 # interpolate %A ok 51 # Configuring list of cddb_files ok 52 # Title via CDDB_File ok 53 # Artist via CDDB_File ok 54 # Album via CDDB_File ok 55 # Year via CDDB_File ok 56 # Comment via CDDB_File ok 57 # Genre via CDDB_File ok 58 # Track no with CDDB_File ok 59 # artist_collection ok 60 # Year via CDDB_File ok 61 # comment_collection ok 62 # comment_track ok 63 # artist_collection ok 64 # artist ok 65 # artist_collection via %{aC} ok 66 # Configuring comment_remove_date ok 67 # comment_track with removal ok 68 # Configuring2 list of cddb_files ok 69 # Title via CDDB_File ok 70 # Artist via CDDB_File ok 71 # Album via CDDB_File ok 72 # Year via CDDB_File ok 73 # Comment via CDDB_File ok 74 # Genre via CDDB_File ok 75 # Track no with CDDB_File ok 76 # Title via CDDB_File with force ok 77 # Forced comment ok 78 # Artist via CDDB_File with force/interpolate ok 79 # Force/interpolated title ok 80 # Force/interpolated recursive comment ok 81 # Force/interpolated recursive title ok 82 # comment via parse ok 83 # track via parse ok 84 # comment via cached parse ok 85 # title with parse ok 86 # conditional interpolation ok 87 # multi-%c via parse/interpolate ok 88 # multi-%c and %=E via parse/interpolate ok 89 # multi-%c and %e via parse/interpolate ok t/parser.........1..20 ok 1 # MP3::Tag initialized ok 2 # Parsed greedily ok 3 # Parsed before correct ok 4 # Parsed after correct ok 5 # Set parse_minmatch ok 6 # Parsed nongreedily ok 7 # Parsed before correct ok 8 # Parsed after correct ok 9 # Parsed COMM(rus,EN,#1,)[foo] ok 10 # Parsed after correct ok 11 # Got tag ok 12 # config parsedata ok 13 # temporary directory not there ok 14 # temporary output file not there ok 15 # Run the parser ok 16 # Output directory created ok 17 # Output file created ok 18 # Output file of correct size ok 19 # Remove output file ok 20 # Remove output directory ok t/set_v2.........1..134 ok 1 # MP3::Tag initialized ok 2 # Got tag ok 3 # set_id3v2_frame ok 4 # set_id3v2_frame TCON ok 5 # ID3v2 tag autocreated ok 6 # Writing ID3v2 ok 7 # Got ID3v2 ok 8 # ID3v2 TCON parsed ok 9 # %{frames} interpolates in conditional ok 10 # Got tag ok 11 # Update tags ok 12 # ID3v2 TCON parsed ok 13 # ID3v2 tag autocreated ok 14 # ID3v1 tag autocreated ok 15 # ID3v1 genre was set ok 16 # Got tag ok 17 # parse %{TIT2} ok 18 # 1 key ok 19 # key TIT2 ok 20 # Got tag ok 21 # config parsedata ok 22 # checking a field ok 23 # ID3v2 tag autocreated ok 24 # Writing ID3v2 ok 25 # Got ID3v2 ok 26 # Got tag ok 27 # config parsedata TXXX[foo] ok 28 # prepare the data ok 29 # have TXXX ok 30 # no TXXX01 ok 31 # no TXXX02 ok 32 # update ok 33 # reinit ourselves ok 34 # prepare the data ok 35 # have TXXX ok 36 # no TXXX01 ok 37 # no TXXX02 ok 38 # reinit ourselves ok 39 # select_id3v2_frame for write ok 40 # select_id3v2_frame_by_descr for write ok 41 # update ok 42 # reinit ourselves ok 43 # select_id3v2_frame for read ok 44 # select_id3v2_frame for read ok 45 # select_id3v2_frame for read ok 46 # select_id3v2_frame for read, TXXX with [] ok 47 # select_id3v2_frame_by_descr for read, TXXX with [] ok 48 # select_id3v2_frame for read, lang=undef ok 49 # select_id3v2_frame for read ok 50 # select_id3v2_frame for read, empty lang ok 51 # select_id3v2_frame for read ok 52 # select_id3v2_frame for read ok 53 # select_id3v2_frame for read ok 54 # select_id3v2_frame for read, Lang/descr are undef ok 55 # select_id3v2_frame for read ok 56 # select_id3v2_frame for read ok 57 # select_id3v2_frame for read ok 58 # reinit ourselves ok 59 # got size ok 60 # select_id3v2_frame for write, make shorter ok 61 # update ok 62 # reinit ourselves ok 63 # got size ok 64 # size did not grow ok 65 # select_id3v2_frame for write, make longer - as it was ok 66 # update ok 67 # reinit ourselves ok 68 # got size ok 69 # size did not shrink ok 70 # size did not grow w.r.t. initial size ok 71 # has 1 ok 72 # reinit from new file ok 73 # update ok 74 # size ok (but this may change if we look for padding more aggressively) ok 75 # has 1 ok 76 # reinit ok 77 # tagsize the same ok 78 # padding_size the same ok 79 # update ok 80 # tagsize small enough ok 81 # has 1 ok 82 # Title preserved ok 83 # reinit ok 84 # update ok 85 # tagsize small enough ok 86 # has 1 ok 87 # Title preserved ok 88 # Got tag ok 89 # Set frame ok 90 # Frame is set indeed ok 91 # Frame is selectable ok 92 # Frame is interpolatable ok 93 # Frame is conditionally interpolatable ok 94 # Frame is conditionally interpolatable with complicated expansion ok 95 # Frame is neg-conditionally interpolatable ok 96 # Frame is |-interpolatable ok 97 # Frame is |-interpolatable ok 98 # Frame is ||-interpolatable with complicated expansion ok 99 # Frame is ||-interpolatable with complicated expansion ok 100 # Frame is ||-interpolatable with a frame in expansion ok 101 # Frame is &-interpolatable ok 102 # update ok 103 # correct gif data ok 104 # Got tag ok 105 # APIC set ok 106 # update ok 107 # reinit ok 108 # APIC read ok 109 # APIC read with picture type ok 110 # APIC with missing picture type ok 111 # APIC read with 3 picture types ok 112 # APIC read with 3 picture types ok 113 # APIC read lower-level with 3 picture types ok 114 # Got tag ok 115 # APIC set ok 116 # update ok 117 # reinit ok 118 # APIC read ok 119 # APIC read with picture type ok 120 # APIC with missing picture type ok 121 # APIC read with 3 picture types ok 122 # APIC read with 3 picture types ok 123 # APIC read lower-level with 3 picture types ok 124 # Got tag ok 125 # APIC set ok 126 # update ok 127 # reinit ok 128 # APIC read ok 129 # APIC read with picture type ok 130 # APIC with missing picture type ok 131 # APIC read with 3 picture types ok 132 # APIC read with 3 picture types ok 133 # APIC read lower-level with 3 picture types # descr = APIC(Cover (back))[try] TPE1 TIT2 ok 134 # descriptor found ok t/update_tags....1..5 ok 1 # MP3::Tag initialized ok 2 # Got tag ok 3 # update_tags() called ok 4 # Regot tag ok 5 # Tag correctly written ok t/v2_comments....1..105 ok 1 # MP3::Tag initialized ok 2 # Got tag ok 3 # Changing ID3v2 ''-comment ok 4 # ID3v2 tag autocreated ok 5 # Writing ID3v2 ok 6 # have COMM frame ok 7 # no COMM01 frame ok 8 # no COMM02 frame ok 9 # Got tag via %{COMM(RUS,eng)[foo]} ok 10 # Got tag via %{COMM(rus,ENG)[foo]} ok 11 # Got tag via %{COMM(rus,EN,#0)[foo]} ok 12 # Got tag via %{COMM(rus,EN,#1,)[foo]} ok 13 # Got tag via %{COMM[foo]} ok 14 # No tag via %{COMM(rus,EN,#1)[foo]} ok 15 # Conditional via %{COMM(rus,EN,#1)[foo]} ok 16 # Alternative via %{COMM(rus,EN,#1)[foo]} ok 17 # Alternative via %{COMM(rus,EN,#1,)[foo]} ok 18 # Alternative via %{COMM(rus,EN,#1)[foo]} ok 19 # Alternative via %{COMM(rus,EN,#1,)[foo]} ok 20 # Alternative via %{COMM(rus,EN,#1)[foo]} ok 21 # Alternative via %{COMM01} ok 22 # Set TLEN frame ok 23 # Alternative via %{TLEN} ok 24 # Alternative via %{COMM01} ok 25 # Alternative via %{TLEN} ok 26 # Alternative via %{TLEN} ok 27 # Alternative via %{y} # res=`test12.mp3' ok 28 # Alternative via %{f} ok 29 # Alternative via %{y} ok 30 # Alternative via %{f} ok 31 # Alternative via %{y} ok 32 # Parsed %={COMM(rus,EN,#1,)[foo]} ok 33 # Parsed before %={COMM(rus,EN,#2,)[foo]} ok 34 # Parsed after %={COMM(rus,EN,#2,)[foo]} ok 35 # Changing ID3v2 ''-comment ok 36 # Alternative via %{COMM(rus,EN,fra)[foo]} ok 37 # Alternative via %{COMM01} ok 38 # Set year ok 39 # Alternative via %{y} ok 40 # reget tags ok 41 # config parse_data ok 42 # Get the machinery started ok 43 # have it parsed ok 44 # update tags ok 45 # reget tags ok 46 # have it stored ok 47 # init ourselves ok 48 # config parse_data ok 49 # prepare the data ok 50 # have COMM ok 51 # no COMM01 ok 52 # no COMM02 ok 53 # update ok 54 # reinit ourselves ok 55 # have COMM ok 56 # no COMM01 ok 57 # no COMM02 ok 58 # config parse_data ok 59 # prepare the data ok 60 # have COMM ok 61 # no COMM01 ok 62 # no COMM02 ok 63 # init ourselves ok 64 # config multiple parse_data to create COMMs ok 65 # prepare the data ok 66 # have COMM ok 67 # have COMM01 ok 68 # have COMM02 ok 69 # no COMM03 # `bar; baz; foo' ok 70 # parse COMM[a]&COMM[aa]&COMM[b]&COMM[c] ok 71 # update ok 72 # reinit ourselves ok 73 # config multiple parse_data to delete COMMs ok 74 # prepare the data ok 75 # no COMM ok 76 # no COMM01 ok 77 # no COMM02 ok 78 # no COMM03 ok 79 # reinit ourselves ok 80 # config multiple parse_data to delete COMMs ok 81 # prepare the data ok 82 # no COMM ok 83 # no COMM01 ok 84 # no COMM02 ok 85 # no COMM03 ok 86 # reinit ourselves ok 87 # config multiple parse_data to delete COMMs ok 88 # prepare the data ok 89 # no COMM ok 90 # no COMM01 ok 91 # no COMM02 ok 92 # no COMM03 ok 93 # reinit ourselves ok 94 # config multiple parse_data to delete COMMs ok 95 # prepare the data ok 96 # no COMM ok 97 # no COMM01 ok 98 # no COMM02 ok 99 # no COMM03 ok 100 # update ok 101 # reinit ourselves ok 102 # no COMM ok 103 # no COMM01 ok 104 # no COMM02 ok 105 # no COMM03 ok All tests successful. Files=6, Tests=377, 2 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/typeset_audio_dir blib\script\typeset_audio_dir pl2bat.bat blib\script\typeset_audio_dir C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/mp3info2 blib\script\mp3info2 pl2bat.bat blib\script\mp3info2 C:\cpanrun\build\5-10-0\bin\perl.exe -MExtUtils::Command -e cp examples/audio_rename blib\script\audio_rename pl2bat.bat blib\script\audio_rename Installing C:\cpanrun\build\5-10-0\html\bin\audio_rename.html Installing C:\cpanrun\build\5-10-0\html\bin\mp3info2.html Installing C:\cpanrun\build\5-10-0\html\bin\typeset_audio_dir.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\ID3v2-Data.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\CDDB_File.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\File.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\ID3v1.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\ID3v2.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\Inf.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\LastResort.html Installing C:\cpanrun\build\5-10-0\html\site\lib\MP3\Tag\ParseData.html Installing C:\cpanrun\build\5-10-0\site\lib\MP3\ID3v2-Data.pod Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\CDDB_File.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\File.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\ID3v1.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\ID3v2.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\Inf.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\LastResort.pm Installing C:\cpanrun\build\5-10-0\site\lib\MP3\Tag\ParseData.pm Installing C:\cpanrun\build\5-10-0\site\bin\audio_rename Installing C:\cpanrun\build\5-10-0\site\bin\audio_rename.bat Installing C:\cpanrun\build\5-10-0\site\bin\mp3info2 Installing C:\cpanrun\build\5-10-0\site\bin\mp3info2.bat Installing C:\cpanrun\build\5-10-0\site\bin\typeset_audio_dir Installing C:\cpanrun\build\5-10-0\site\bin\typeset_audio_dir.bat Appending installation info to C:\cpanrun\build\5-10-0\lib/perllocal.pod