in reply to Heredoc with system call
Are you sure you answered your own question? It looked like you wanted to pipe some data to the STDIN of the lsnrctl program (whatever that is).
PS, you should be looking at $?, not $!. $! is for system calls, not the function which happens to be called "system."
set password 'oracle'
set current_listener 'LISTENER'
") == 0 or die "Couldn't run listener control: $?";
system($command)==0 or die "couldn't run listener control: $!";