What does the below statement say exactly?
my @dirs = qw(fred|flintstone <barney&rubble> betty );
The complete story is:
my $tarfile = "something*wicked.tar";
my @dirs = qw(fred|flintstone <barney&rubble> betty );
system "tar", "cvf", $tarfile, @dirs;
This has been taken from Learning Perl, 4th Edition.
The result that the system command will run on shell is:
tar cvf fred|flintstone <barney&rubble> betty
But does this command has a meaning on unix?
qw()splits the string between parentheses through whitespaces (spaces, tabs, any number of them) and returns a list:"fred|flintstone", "<barney&rubble>", "betty"EDIT: hint from @kemp: it returns a list
And now to your updated question:
Yes, the characters
|,<,>and&do have meanings in Linux:|redirects the standard output fromtar cvf fredto the standard input offlintstone.<sends the filebarneyto the standard input offlintstone&runs the previous command and sends it to background>writes the standard output ofrubbleto the filebettyWhether the whole line has a meaning, it depends on individual programs.