in reply to Re: Service controller for Linux/Unix
in thread Service controller for Linux/Unix


my $action = $0 =~ /([^/]+)$/;

You need to escape your forward slash, and in this format, $action is given a true value ('1'), but is not given the result of the match.

The following works and is added to the code:

$0 =~ /([^\/]+)$/; my $action = $1;

Thanks for your comments.

J. J. Horner
Linux, Perl, Apache, Stronghold, Unix

Replies are listed 'Best First'.
Re: Re: Re: Service controller for Linux/Unix
by Fastolfe (Vicar) on Feb 09, 2001 at 01:50 UTC
    You're right; I had intended to write something more like this:
    my ($action) = $0 =~ m!([^/]+)$!;
    Either way, you figured it out. I usually prefer the one-line form like this, because with the two-line form, if the regex fails, an assignment to $1 might get you something you do not expect (the results from a previous regex, for example).