in reply to subroutine ref while "strict refs"

I can probably put
if ($sub_routine =~ /check_char/} { check_char ($value1, $value2); }
but is there a neater way? If someone else changes the record layout and adds a new subroutine, then the code would need to be changed to cater for it, which probably isn't ideal.

Replies are listed 'Best First'.
Re^2: subroutine ref while "strict refs"
by BillKSmith (Monsignor) on Jul 28, 2014 at 12:09 UTC
    If anyone adds a subroutine, you will at least need a new 'use' statement to reference it. There does not seem to be much advantage in eliminating the need for other changes. Use a method that is clear and easy to modify. I like the dispatch table. Add a new entry for each new subroutine.
    Bill
      If anyone adds a subroutine, you will at least need a new 'use' statement to reference it.

      What?

        I understood that the OP considered his symbolic references an advantage because a user could add new subroutines without modifying the original script. My point is that it is unlikely that this is possible. The additional effort to add a hard reference to a dispatch table is insignificant if you have to modify the script anyway.
        Bill