https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29008
--- Comment #7 from Martin Renvoize <[email protected]> --- As an example.. I have ``` use version; sub _version_check { my ( $self, $minversion ) = @_; my $kohaversion = Koha::version(); return ( version->parse($kohaversion) > version->parse($minversion) ); } ``` Which is what I've found to be most reliable to date. In the past I've have ``` sub _version_check { my ( $self, $minversion ) = @_; $minversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/; my $kohaversion = Koha::version(); # remove the 3 last . to have a Perl number $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/; return ( $kohaversion > $minversion ); } ``` The core one is ``` sub _version_compare { my @args = @_; if ( $args[0]->isa('Koha::Plugins::Base') ) { shift @args; } my $ver1 = shift @args || 0; my $ver2 = shift @args || 0; my @v1 = split /[.+:~-]/, $ver1; my @v2 = split /[.+:~-]/, $ver2; for ( my $i = 0 ; $i < max( scalar(@v1), scalar(@v2) ) ; $i++ ) { # Add missing version parts if one string is shorter than the other # i.e. 0 should be lt 0.2.1 and not equal, so we append .0 # 0.0.0 <=> 0.2.1 = -1 push( @v1, 0 ) unless defined( $v1[$i] ); push( @v2, 0 ) unless defined( $v2[$i] ); if ( int( $v1[$i] ) > int( $v2[$i] ) ) { return 1; } elsif ( int( $v1[$i] ) < int( $v2[$i] ) ) { return -1; } } return 0; } ``` And they're all different from what you're doing here... -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
