Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I have two location's which has the following folder Folder1:sms8618 Folder2:sms8918 Depending on which location I use,I need get the location dynamically,something like below,Can someone please help?

my $sms8x18 = $options{location} ."\\sms8x18\\src";

Replies are listed 'Best First'.
Re: Dynamic detection of a folder based on the location given
by roboticus (Chancellor) on Jun 24, 2011 at 20:10 UTC

    You could set up environment variables to specify your folders, and then use them. It's nearly exactly what you listed in your code snippet:

    my $sms8x81 = $ENV{SMS8X81} . "/src";

    Then you can just use the SMS8X81 environment variable to point to the directory you want. (Note: I used forward slashes, because most OS (including windows) will happily use them for directory separators. The only time I have troubles with forward slashes is when I'm trying to execute shell commands from perl, but as I rarely do that, forward slashes work quite well for me.)

    You could also get the directory name from the command line, from user input, a database or whatever you like. You didn't specify much in the way of details, so I don't know what direction you were thinking of going.

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

      I am aware of the ENV and passing it as an option on command line.I want dynamic detction of the folder based on the location.Only one digit is different between the two folders as you can see.Can anyone please help?

        I'm not sure exactly what you're after, but if it's just a matter of dynamically determining your current working directory:
        use warnings; use strict; use Cwd; my $cwd = getcwd(); my $sms8x18 = $cwd . "\\sms8x18\\src"; print $sms8x18;
        Cheers,
        Rob

        Maybe you just want to detect whether a folder exists? The -X operators are good for that, for example -d $folderpath.