>I'd like to use: > >SHELL = /usr/bin/perl >.SHELLFLAGS = -w -E 'use warnings FATAL => "all";' -E > >but it doesn't work, saying at recipe execution time: > >Can't find string terminator "'" anywhere before EOF at -e line 1.
Your problem is in the recipe that you don't show. This works perfectly in my hands SHELL = /usr/bin/perl .SHELLFLAGS = -w -E 'use warnings FATAL => "all";' -E all: print 'it works' however, I get your reported error message exactly if I omit the closing single quote from the recipe: SHELL = /usr/bin/perl .SHELLFLAGS = -w -E 'use warnings FATAL => "all";' -E all: print 'it works > >I tried a few other quoting combinations without any luck. It looks >like maybe the problem is that there's no way to group words at all. >This works to get the fatal warnings pragma: > >.SHELLFLAGS = -w -e use -e warnings -e FATAL -e => -e "all"; > >but it's sort of gruesome and there are still other reasons I'd like >to be able to pass spaces, for example to get the line number right as >in: > >perl -Mv5.20 -e \#line\ 42 -e 'say "$undeclared_var"' > >That pragma has to go all on one line and I didn't find a substitute. >Anything I'm missing here? > >Britton >