I have seen similar questions posted around and have tried researching this topic prior to asking you all, but I am stuck. I am trying, through command-line argument, take a directory, search for all file extensions in that directory that end in .pl and change them to .txt. I then want to go into any of the subdirectories in that parent directory and do the same thing. I am trying to use glob, because it seems like a neat little function. I don't have to use glob. I was just trying to solve this by using glob, so I am open to any other suggestions.

I have tried changing the file extensions in one directory. I am trying to start small, but it does not work as intended. There are no compile errors, but I believe my understanding of some of the commands are incorrect.

This is what I have so far:

#!/usr/local/bin/perl use strict; use warnings; my @argv; my $dir = $ARGV[0]; my @files = glob "${dir}'*pl*'"; foreach (@files) { next if -d; (my $txt = $_) =~ s/pl$/txt/; rename($_, $txt); }

Test Example: "Insert a directory:" TestDir "Changing file formats in TestDir from .pl to .txt." "Changing file format in subdirectories of TestDir from .pl to .txt" etc.

Any help is appreciated.


In reply to Use Of Glob On File Extensions by NewToPerl777

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.