![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
'http://www.***.com/~xyz/html/'
'../txt/test.txt'
の様な2つの文字列から
'http://www.***.com/~xyz/txt/test.txt'
の様な文字列を取得できるモジュールなどをご存知の方が居ましたら、是非教えていただけないでしょうか。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
URIモジュールでそのものずばりのことが可能です
use URI;
$new = URI->new_abs('../txt/test.txt','http://www.abc.com/~xyz/html/');
↑により、$newに http://www.abc.com/~xyz/txt/test.txt が入る。
URIのnew_absの第一引数に相対、第二引数に絶対URIを入れればOKです。
ご回答ありがとうございます。
まさしく、こういうモジュールを探していました。
ドキュメントを軽く読んでみたのですが、URI::fileを使えば、windows環境のローカルファイルも扱えるようですね。
色々と試して、使いこなしてみようと思います。
(日本語訳のドキュメントは無さそうですが…。)
No.1
- 回答日時:
モジュールではありませんが、例としてあげられたケースなら下記のコードでうまくいきました
$url = func('http://www.***.com/~xyz/html/', '../txt/test.txt');
print $url;
sub func {
my $url = $_[0].$_[1];
# xxx/../ --> "" に変換
1 while ($url =~ s#[^/]+/\.\./##);
# /./ --> / に変換
1 while ($url =~ s#/\./#/#);
return $url;
}
ご回答ありがとうございます。
これに、ルート指定の「/」が加わればモジュールなしでも大丈夫そうですね。
一応、モジュールが使用できない環境への対策として参考にさせて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl エラーログを指定の場所...
-
Perlでテキストファイル読み込み
-
Visual Basicを使って三平方の...
-
バッチファイルの作り方(CSV→...
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
VBAコードを張り付け後のエクセ...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
データの日付でソートをしたい
-
awkスクリプトでダブルクォーテ...
-
VBAで巨大なファイルの途中から...
-
dos変数の%~dp0は powershellで...
-
VBAでCSVファイルの特定行を書...
-
PerlからのCSV出力
-
MATLAB グローバル変数の宣言
-
時刻表を分でソートする方法を...
-
ReadLineでの読み出し行を指定する
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名を複数個配列で確保...
-
「パスが見つかりません」とい...
-
Visual Basicを使って三平方の...
-
C++でのテキストファイル読み込...
-
Fortranで1行飛ばして読み込む方法
-
同じようなソースなのですが片...
-
どなたか教えて下さい。
-
ifstream/ofstream について
-
Perl エラーログを指定の場所...
-
system関数と引数について
-
perlで指定範囲を複数ファイル...
-
ファイルの一部を別のファイル...
-
C言語初心者です。プログラミン...
-
perlでIEのクッキーを削除したい
-
ファイルを分割する。
-
一行だけ読込
-
日本語のマッチング(正規表現)
-
perl ファイルのデータを編集し...
-
Pythonで非日本語のUnicode文字...
-
shellのコマンド deffの差分の...
おすすめ情報