Aion-Fs
view release on metacpan or search on metacpan
lib/Aion/Fs.pm view on Meta::CPAN
volume => "/cygdrive/%s/",
folder => "%s/",
name => "%s",
ext => ".%s",
},
},
{
name => [MSYS, MSYS2],
symdir => '/',
symext => '.',
regexp => qr!^
(?<dir>
( / (?<volume> [^/]+ )? /? )
( (?<folder> .* ) / )?
)?
(?<file>
(?<name> \.? [^/.]* )
( \. (?<ext> [^/]* ) )?
)
\z!xsn,
join => sub {
_join [qw/path dir file/],
volume => "/%s/",
folder => "%s/",
name => "%s",
ext => ".%s",
},
},
{
name => [DOS, OS2, MSWIN32, SYMBIAN],
symdir => '\\',
symext => '.',
before_split => sub { $_[0] =~ s!/!\\!gr },
regexp => qr!^
(?<dir>
( (?<volume> [^\\:]+) : | \\\\ (?<server> [^\\]+ )? )?
( (?<folder> \\ ) | (?<folder> .* ) \\ )?
)
(?<file>
(?<name> \.? [^\\.]* )
( \. (?<ext> [^\\]* ) )?
)
\z!xsn,
join => sub {
_join [qw/path dir file/],
volume => "%s:",
server => "\\\\%s",
folder => ["\\", "%s\\"],
name => "%s",
ext => ".%s",
},
},
{
name => VMS,
symdir => '.',
symext => '.',
regexp => qr!^
(?<dir>
(
(?<node> [^:\[\]]* )
( \[" (?<accountname> [^\s:\[\]]+ ) \s+ (?<password> [^\s:\[\]]+ ) "\] )?
:: )?
(?<volume>
(?<disk> [^\$:\[\]]* )
( \$ (?<user> [^\$:\[\]]* ) )?
: )?
( \[ (?<folder> [^\[\]]* ) \] )?
)
(?<card>
(?<file>
(?<name> \.? [^.;\[\]]*? )
( \. (?<ext> [^;\[\]]* ) )?
)
( ; (?<version> [^;\[\]]* ) )?
)
\z!xsn,
join => sub {
_join [qw/path dir volume file/],
node => "%s",
[qw/accountname password/] => '["%s %s"]',
[qw/node accountname password/] => "::",
disk => "%s",
user => "\$%s",
[qw/disk user/] => ':',
folder => "[%s]",
name => "%s",
ext => ".%s",
version => ";%s",
},
},
{
name => VOS,
symdir => '>',
symext => '.',
regexp => qr!^
(?<dir>
(?<volume>
% (?<sysname> [^>\#]* ) \# (?<module> [^>\#]* ) >
)?
( (?<folder> .* ) > )?
)
(?<file>
(?<name> \.? [^.]*? )
( \. (?<ext> .* ) )?
)
\z!xsn,
join => sub {
_join [qw/path dir volume file/],
[qw/sysname module/] => "%%%s#%s>",
folder => "%s>",
name => "%s",
ext => ".%s",
},
},
{
name => RISCOS,
symdir => '.',
symext => '/',
regexp => qr!^
(?<dir>
(?<volume>
(
(?<fstype> [^\$\#:.]* )
( \# (?<option> [^\$\#:.]* ) )?
: )?
( : (?<disk> [^\$\#:.]* ) \. )?
)
( (?<folder> .* ) \. )?
)
(?<file>
(?<name> [^./]*? )
( / (?<ext> [^.]* ) )?
)
\z!xsn,
join => sub {
_join [qw/path dir volume file/],
fstype => "%s",
option => "#%s",
[qw/fstype option/] => ":",
disk => ":%s.",
folder => "%s.",
lib/Aion/Fs.pm view on Meta::CPAN
path "Work1:Documents/Letters/Letter1.txt" # --> $path
path {volume => "Work", file => "Letter1.pm", ext => "txt"} # => Work:Letter1.txt
}
{
local $^O = "cygwin";
my $path = {
path => "/cygdrive/c/Documents/Letters/Letter1.txt",
dir => "/cygdrive/c/Documents/Letters/",
volume => "c",
folder => "Documents/Letters",
file => "Letter1.txt",
name => "Letter1",
ext => "txt",
};
path "/cygdrive/c/Documents/Letters/Letter1.txt" # --> $path
path {volume => "c", file => "Letter1.pm", ext => "txt"} # => /cygdrive/c/Letter1.txt
}
{
local $^O = "dos";
my $path = {
path => 'c:\Documents\Letters\Letter1.txt',
dir => 'c:\Documents\Letters\\',
volume => 'c',
folder => '\Documents\Letters',
file => 'Letter1.txt',
name => 'Letter1',
ext => 'txt',
};
path 'c:\Documents\Letters\Letter1.txt' # --> $path
path {volume => "c", file => "Letter1.pm", ext => "txt"} # \> c:Letter1.txt
path {dir => 'r\t\\', file => "Letter1", ext => "txt"} # \> r\t\Letter1.txt
}
{
local $^O = "VMS";
my $path = {
path => "DISK:[DIRECTORY.SUBDIRECTORY]FILENAME.EXTENSION",
dir => "DISK:[DIRECTORY.SUBDIRECTORY]",
volume => "DISK:",
disk => "DISK",
folder => "DIRECTORY.SUBDIRECTORY",
card => "FILENAME.EXTENSION",
file => "FILENAME.EXTENSION",
name => "FILENAME",
ext => "EXTENSION",
};
path "DISK:[DIRECTORY.SUBDIRECTORY]FILENAME.EXTENSION"; # --> $path
$path = {
path => 'NODE["account password"]::DISK$USER:[DIRECTORY.SUBDIRECTORY]FILENAME.EXTENSION;7',
dir => 'NODE["account password"]::DISK$USER:[DIRECTORY.SUBDIRECTORY]',
node => "NODE",
accountname => "account",
password => "password",
volume => 'DISK$USER:',
disk => 'DISK',
user => 'USER',
folder => "DIRECTORY.SUBDIRECTORY",
card => "FILENAME.EXTENSION;7",
file => "FILENAME.EXTENSION",
name => "FILENAME",
ext => "EXTENSION",
version => 7,
};
path 'NODE["account password"]::DISK$USER:[DIRECTORY.SUBDIRECTORY]FILENAME.EXTENSION;7' # --> $path
path {volume => "DISK:", file => "FILENAME.pm", ext => "EXTENSION"} # => DISK:FILENAME.EXTENSION
path {user => "USER", folder => "DIRECTORY.SUBDIRECTORY", file => "FILENAME.pm", ext => "EXTENSION"} # \> $USER:[DIRECTORY.SUBDIRECTORY]FILENAME.EXTENSION
}
{
local $^O = "VOS";
my $path = {
path => "%sysname#module1>SubDir>File.txt",
dir => "%sysname#module1>SubDir>",
volume => "%sysname#module1>",
sysname => "sysname",
module => "module1",
folder => "SubDir",
file => "File.txt",
name => "File",
ext => "txt",
};
path $path->{path} # --> $path
path {volume => "%sysname#module1>", file => "File.pm", ext => "txt"} # => %sysname#module1>File.txt
path {module => "module1", file => "File.pm"} # => %#module1>File.pm
path {sysname => "sysname", file => "File.pm"} # => %sysname#>File.pm
path {dir => "dir>subdir>", file => "File.pm", ext => "txt"} # => dir>subdir>File.txt
}
{
local $^O = "riscos";
my $path = {
path => 'Filesystem#Special_Field::DiskName.$.Directory.Directory.File/Ext/Ext',
dir => 'Filesystem#Special_Field::DiskName.$.Directory.Directory.',
volume => 'Filesystem#Special_Field::DiskName.',
fstype => "Filesystem",
option => "Special_Field",
disk => "DiskName",
folder => '$.Directory.Directory',
file => "File/Ext/Ext",
name => "File",
ext => "Ext/Ext",
};
path $path->{path} # --> $path
$path = {
path => '.$.Directory.Directory.',
dir => '.$.Directory.Directory.',
folder => '.$.Directory.Directory',
};
path '.$.Directory.Directory.' # --> $path
path {volume => "ADFS::HardDisk.", file => "File"} # \> ADFS::HardDisk.File
path {volume => "ADFS::HardDisk.", folder => '$', file => "File"} # \> ADFS::HardDisk.$.File
path {folder => "x"} # => x.
path {dir => "x."} # => x.
}
( run in 0.511 second using v1.01-cache-2.11-cpan-2398b32b56e )