language: Perl (perl 5.16.2)
date: 433 days 11 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use v5.10;
 
my $str = 'variable_name, VARIABLE_NAME, _var_x_short,  __variable__name___';
 
### solution 1
$_ = $str;
 
$_ = lc;
s/_(\w)/\U$1/g;
 
say;
 
### solution 2: multi/leading underscore fix
$_ = $str;
 
$_ = lc;
s/(?<=[^\W_])_+([^\W_])|_+/\U$1/g;
 
say;
 
### solution 3: without prior lc
$_ = $str;
 
s/(?<=[^\W_])_+([^\W_])|([^\W_]+)|_+/\U$1\L$2/g;
 
say;