http://www.perlmonks.org?node_id=324201


in reply to Remove non-numerics from string

I think you're on the right track, but probably don't want to use split. Here, split would take the string and break it into a list of strings after each underscore.

For what you're trying to do, a simple regular expression match will work. If you just want to pull out the sequence of numbers from $oldValue, then try something like:

if ( $oldValue =~ m|(\d+)| ) { $newValue = $1; }

For what you're trying to do with split, you need to specify which list element you want to put into $newValue. Since the list starts at element 0, you'll want element 1. You can access it with the following statement:

$newValue=(split("_",$oldValue,2))[1]

Note, this will return everything after the underscore, and not just the numbers.