網頁

2011年9月26日 星期一

Perl: 快速分解檔案路徑及名稱。 use File::Basename

不管使用什麼程式語言,常常會遇到要拆解檔案路徑和名稱的情況,有些有提供api使用,有些要自己手動來完成,Perl 則提供了一個好用模組來快速解決這問題。
範例如下:

#!/usr/bin/perl

use strict;
use warnings;
use File::Basename;

my $fullpath='YourFileFullpath';
my ($name, $path, $suffix) = fileparse($fullpath);
print "name=$name\n";
print "path=$path\n";
print "suffix=$suffix\n";

結果:
# On Unix
$fullpath="/foo/bar/baz";
# returns
$name="baz", $path="/foo/bar/", suffix="";


# On Windows
$fullpath='C:\foo\bar\baz';
# returns
$name="baz", $path='C:\foo\bar\', suffix="";

# get file name, It does NOT always return the file name portion of a path as you might expect. To be safe, if you want the file name portion of a path use fileparse() .
$fullpath="/foo/bar/baz";
my $name = basename($fullpath);
#return
$name="baz"

2 則留言:

  1. File::Basename 是內建的,如果不限於用內建的話,Path::Class 也很方便 :)

    回覆刪除
  2. 改天來試試 Path::Class。 3Q

    回覆刪除