что значит perl use Cwd qw ();?
что значит
use Cwd qw();
среднее значение в perl?
Я знаю, что qw дает кавычки для каждого элемента внутри () Но как насчет этого дела?
3 ответов
на qw()
это причудливый способ написания пустого списка. Делать ()
будет на два символа короче.
передача пустого списка use
важно избежать импорт. От use
документация:
если вы не хотите вызывать метод импорта пакета (например, чтобы остановить изменение пространства имен), явно укажите пустой список
Е. Г. по умолчанию Cwd
экспорт модуль getcwd
. Этого не произойдет, если мы дадим ему пустой список:
use strict;
use Cwd;
print "I am here: ", getcwd, "\n";
работает, а
use strict;
use Cwd ();
print "I am here: ", getcwd, "\n";
прерывает компиляцию с Bareword "getcwd" not allowed while "strict subs" in use
.
Я верю, что с qw()
после use Module
предназначен для импорта подпрограмм, когда он остается пустым, он просто загружает модуль, но не импортирует подпрограммы в пространство имен.
например, это вызывает ошибку, так как getcwd не импортируется:
#!/usr/bin/perl
use warnings;
use strict;
use Cwd qw();
my $dir=getcwd;
но я не уверен, что это тот ответ, который вы искали..!
обычно он" импортирует " команды, поэтому вам не нужно создавать объект и вызывать функцию на них.
пример (из perlmonks):
#without qw
use CGI;
my $q = CGI->new();
my $x = $q->param('x');
#with qw
use CGI qw/:standard/;
my $x = param("x")
источник:http://www.perlmonks.org/?node_id=1701
большинство модулей имеют группы импорта, такие как: all или: standard.