Whoops. Too late to edit, but a correction:
growlnotify -m "Success! "
(the space tells bash to treat the exclamation point as text) growlnotify -m "Success! "
(the space tells bash to treat the exclamation point as text) growlnotify -m "$(echo Great\! Success\!)" sub escape {
my $arg = shift;
$arg =~ s/([^a-zA-Z0-9_])/\\$1/g;
return $arg;
}