X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/e1226a3e4cfb3b6d3b58db0abb7919a6a736fb55..3efe0eca82fa7f9c0fd125ff25f42901bc7133c8:/Shiar_Sheet/Keyboard.pm?ds=sidebyside diff --git a/Shiar_Sheet/Keyboard.pm b/Shiar_Sheet/Keyboard.pm index 90ec4e8..0ccd9c2 100644 --- a/Shiar_Sheet/Keyboard.pm +++ b/Shiar_Sheet/Keyboard.pm @@ -125,11 +125,13 @@ sub print_key { sub print_rows { my $self = shift; + my ($rowsspec, $defrows) = @_; + $defrows ||= [2, 1, 0]; my %moderows = ( - -DEFAULT => !@_ ? '' : split(/(?:\s*([^=\s]*)=\s*)/, shift), + -DEFAULT => defined $rowsspec && $rowsspec ne '' && + split(/\s* ([^=\s]*) = \s*/x, $rowsspec), # plus specific mode overrides prefixed by '=' ); - my $defrows = shift || [2, 1, 0]; my @modes = sort keys %{ $self->{def} }; print ''."\n\n"; @@ -141,7 +143,7 @@ sub print_rows { for my $basemode (@modes) { my @moderows = split /\s+/, $row < 0 ? "0" : - defined $moderows{$basemode} ? $moderows{$basemode} : $moderows{-DEFAULT}; + $moderows{$basemode} // $moderows{-DEFAULT}; for my $submode (@moderows ? @moderows : '') { my $mode = $basemode . $submode;