anand kumar wrote:
hi all,
I could not understand clearly the functions qw(),qq(),qr(),qx(),q(),quotemeta(). I
have read the explanation for these functions in the perl documentation but i
could not get idea of where exactly we can use these functions. So please
send some other links or examples for these functions.
Thanks in advance for the help
Regards
Anand Kumar
Hello Anand,
q/STRING/
’STRING’
A single-quoted, literal string.A generalized single-quote operation.
A backslash represents a backslash unless followed by the delimiter or
another backslash, in which case the delimiter or backslash is interpolated.
for example
$foo = q!Hello World!; This is equivalent to $foo='hello world';
_________________________________________________________________________________
qq/STRING/
"STRING"
A double-quoted, interpolated string.
for example
$foo = qq!Hello World!; This is equivalent to $foo='hello world';
_________________________________________________________________________________
qr/STRING/imosx
This operator quotes (and possibly compiles) its STRING as a regular
expression. STRING is interpolated the same way as PATTERN in "m/PATTERN/"
Options are:
i Do case-insensitive pattern matching.
m Treat string as multiple lines.
o Compile pattern only once.
s Treat string as single line.
x Use extended regular expressions.
For example
$rex = qr/my.STRING/is;
s/$rex/foo/;
This is equivalent too
s/my.STRING/foo/is;
_________________________________________________________________________________
qx/STRING/
‘STRING‘
A string which is (possibly) interpolated and then executed as a system
command with "/bin/sh" or its equivalent. Shell wildcards, pipes, and
redirections will be honored. The collected standard output of the
command is returned; standard error is unaffected.
qx(ls); This is equivalent to `ls` (backtics)
qw/STRING/
Evaluates to a list of the words extracted out of STRING, using embedded
whitespace as the word delimiters.
@a=qw(foo bar baz); This is equivalent too @a=("foo", "bar", "baz");
_________________________________________________________________________________
quotemeta EXPR
Returns the value of EXPR with all non-"word" characters backslashed.
_________________________________________________________________________________
A Small Example
PROGRAM
$ cat func.pl
#!/usr/bin/perl
$foo = q!Hello World\n!;
print "single-quote operation\n\t",$foo."\n";
$foo = qq!Hello World\n!;
print "double-quote operation\n\t",$foo;
$foo = "Hello world";
$pattern = qr!Hello!is;
$foo=~s/$pattern/HELL0/;
print "Regex operation\n\t",$foo;
@a=qw(hello perl world);
print "\nTurn a space-delimited string of words into a list\n\t";
foreach(@a){
print "$_\n\t";
}
$foo="Hello*world";
$non_word_char = quotemeta($foo);
print "\nBackslashed non-word characters\n\t",$non_word_char."\n";
print qx/ps/;
OUTPUT
$ perl func.pl
single-quote operation
Hello World\n
double-quote operation
Hello World
Regex operation
HELL0 world
Turn a space-delimited string of words into a list
hello
perl
world
Backslashed non-word characters
Hello\*world
PID TTY TIME CMD
20453 pts/5 00:00:00 bash
20737 pts/5 00:00:00 perl
20738 pts/5 00:00:00 ps
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>