Как я могу получить разделитель каталога (путь к файлу) в Perl?

В случае Java мы можем получить разделитель путей, используя

System.getProperty("path.separator");

Есть ли аналогичный способ в Perl? Все, что я хочу сделать, это найти директорию, расположенную под прямым названием. Скажем, мне дают два аргумента $a и $b; Я разделяю первый на основе разделителя путей и соединяю его снова, кроме последнего фрагмента, и сравнивая со вторым аргументом.

Проблема заключается в том, что мой код должен быть общим, и для этого мне нужно знать, что такое системный разделитель путей?

Ответы

Ответ 1

Принятый ответ решает вашу реальную проблему, но если вы действительно хотите получить разделитель (используя только модули ядра perl):

my $sep = File::Spec->catfile('', '');

Это объединяет два пустых имени файла с текущим разделителем системы, оставляя только разделитель.

Ответ 2

Вы не должны создавать пути к файлам вручную - вместо этого используйте File:: Spec:

($volume, $directories,$file) = File::Spec->splitpath( $path );
@dirs = File::Spec->splitdir( $directories );
$path = File::Spec->catdir( @directories );
$path = File::Spec->catfile( @directories, $filename );

Ответ 3

Вы можете использовать константу SLA в файле:: Util.