From e2305e144679ca954ca0996538e6bf4b0a304187 Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Tue, 6 Oct 2020 17:08:29 -0700 Subject: [PATCH] switched self from hash ref to array ref; improved efficiency --- lib/Perl/Tidy/VerticalAligner/Alignment.pm | 49 +++++++++++++--------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/lib/Perl/Tidy/VerticalAligner/Alignment.pm b/lib/Perl/Tidy/VerticalAligner/Alignment.pm index 70a1a6d8..8e34b143 100644 --- a/lib/Perl/Tidy/VerticalAligner/Alignment.pm +++ b/lib/Perl/Tidy/VerticalAligner/Alignment.pm @@ -12,20 +12,26 @@ use warnings; our $VERSION = '20201001'; -# _column # the current column number -# _starting_column # column number when created -# _saved_column # a place for temporary storage +# _column_ # the current column number +# _starting_column_ # column number when created +# _saved_column_ # a place for temporary storage +my $i = 0; +use constant { + _column_ => $i++, + _starting_column_ => $i++, + _saved_column_ => $i++, +}; sub new { my ( $caller, %arg ) = @_; my $caller_is_obj = ref($caller); my $class = $caller_is_obj || $caller; - my $self = bless {}, $class; - $self->{_column} = $arg{column}; - $self->{_starting_column} = $arg{starting_column}; - $self->{_saved_column} = $arg{saved_column}; - if ( !defined( $self->{_starting_column} ) ) { - $self->{_starting_column} = $self->{_column}; + my $self = bless [], $class; + $self->[_column_] = $arg{column}; + $self->[_starting_column_] = $arg{starting_column}; + $self->[_saved_column_] = $arg{saved_column}; + if ( !defined( $self->[_starting_column_] ) ) { + $self->[_starting_column_] = $self->[_column_]; } return $self; } @@ -36,7 +42,7 @@ sub AUTOLOAD { # some diagnostic information. This sub should never be called # except for a programming error. our $AUTOLOAD; - return if ( $AUTOLOAD =~/\bDESTROY$/ ); + return if ( $AUTOLOAD =~ /\bDESTROY$/ ); my ( $pkg, $fname, $lno ) = caller(); print STDERR <{_column} } +sub get_column { + return $_[0]->[_column_]; +} sub get_starting_column { - my $self = shift; - return $self->{_starting_column}; + return $_[0]->[_starting_column_]; } -sub set_column { my ( $self, $val ) = @_; $self->{_column} = $val; return } +sub set_column { + my ( $self, $val ) = @_; + $self->[_column_] = $val; + return; +} sub set_starting_column { my ( $self, $val ) = @_; - $self->{_starting_column} = $val; + $self->[_starting_column_] = $val; return; } sub increment_column { my ( $self, $val ) = @_; - $self->{_column} += $val; + $self->[_column_] += $val; return; } sub save_column { - my $self = shift; - $self->{_saved_column} = $self->{_column}; + $_[0]->[_saved_column_] = $_[0]->[_column_]; return; } sub restore_column { - my $self = shift; - $self->{_column} = $self->{_saved_column}; + $_[0]->[_column_] = $_[0]->[_saved_column_]; return; } } ## end of package VerticalAligner::Alignment -- 2.39.5