in reply to Re^2: Read into stdin pipe characters
in thread Read into stdin pipe characters

You seem to be confusing the string and the literal (piece of shell code) that produces the string.

The string may not have quotes, but the shell string literal that produces the string must use quotes or some alternative. For example, with bash, you could use any of the following shell commands:

my_prog.pl a b 'c|d|e|f' my_prog.pl a b "c|d|e|f" my_prog.pl a b c\|d\|e\|f

In all cases, a string of four letters separated by pipes will be passed to Perl by the shell. print $ARGV[2] will result in the following:

c|d|e|f