プロが教える店舗&オフィスのセキュリティ対策術

ActivePerlを導入しPerlについて学ぼうと思ったのですが
パスの表現方法の違いでいきなり躓いてしまいました・・・

UnixにはCドライブ、Dドライブという概念がない、ということですが
D:\Program Files\Perl\bin\perl.exe
このようなパスをUnixで表現するにはどうしたらよいのでしょうか?
具体的にいうと「D:\」の部分をどう表現するのでしょうか?

A 回答 (2件)

元々、CとかDとかドライブの概念はディスクを中核にすえたOSであるCP/Mの時代から引きずっているものです。

 UNIXとはアーキテクチャが異なりますので表現を正確に置き換えることはできません。
元来、UNIX系のOSは全てを「ファイル」として扱います。
ファイルの種類はご存知と思いますが
・通常ファイル(テキストやバイナリ)
・ディレクトリファイル(DOSでいうサブディレクトリ/MACでいうフォルダ)
・デバイスファイル(キャラクタ型・ブロック型)
・特殊ファイル(ダイナミックリンク:Winでいうショートカットとか)
等に分類されますが、そのうちのディスク類はデバイスファイルとなります。 ディスクといえどもシステムにとっては外部機器のひとつにすぎません。 DOSやWinにもキーボードやディスプレイにCONというファイル名がついているようにUNIXではディスクにhdaやhdbというファイル名(ディスクのインターフェースで異なりますが・・・)を付け、「ファイルシステム」内に「マウント」して利用しています。
DOSやWindowsでも物理ディスクがドライブ名になるわけでなく、1台のディスクでもパーティションを切って使えば1台のディスクにCドライブとDドライブなどとなります。
一般的なUNIXでは、OSのファイルシステムでの大元「rootディレクトリ(/)」にhda0(最後の数字はhdaのパーティションの番号)がマウントされ、その他のドライブ(パーティション)は、サブディレクトリにマウントされて利用されることになります。
ファイルシステムの概念が理解できれば質問に関する矛盾点も理解できるようになると思います。
どうしても強いて変換するならば
あなたのマシンがDドライブを起動ディスクにしていると仮定して「D:\Program Files\Perl\bin\perl.exe」は「/Program Files/Perl/bin/perl.exe」になるでしょうし、Dドライブが仮にサブディレクトリ「D」にマウントされているなら「/D/Program Files/Perl/bin/perl.exe」のような表現になるかと思います。
Perlについて学習される場合はまずはUNIX系のOS上で学習されることをお勧めします。 そこで文字コードの違いを含むシステム上での違いという経験を踏まえた上で他のシステムでのPerlを学習されると良いと思います。
ファイルひとつ取ってみても意外と奥が深かったりしますので。
    • good
    • 0

表現の意味が分かりません


UNIX系列のOSでファイルパスとして使うならD:なんてありませんし、文字列なら\\にするだけです
WindowsでPerlを使うならパスは/でも\\区切りでもどちらでも好きに書けます
Windows版Apacheでの一行目ならScriptInterpreterSourceディレクティブ使ってた方が楽です
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!