使用perl比较mysql的版本

他就是利用了sprintf的前边补零,要说大二学习C语言就知道这个,可我就没想到

我之前是想用正则表达式将其大中小版本存到数组里边,然后再比较,比较的超麻烦。


代码来自mysql-util里边

my $vp = new VersionParser();

$vp->version_ge($main_dbh, '4.1.1')

###########################################################################
# VersionParser package 1149
# ###########################################################################
use strict;
use warnings FATAL => 'all';

package VersionParser;

sub new {
my ( $class ) = @_;
bless {}, $class;
}

sub parse {
my ( $self, $str ) = @_;
return sprintf('%03d%03d%03d', $str =~ m/(d+)/g);
}

sub version_ge {
my ( $self, $dbh, $target ) = @_;
$self->{$dbh} ||= $self->parse(
$dbh->selectrow_array('SELECT VERSION()'));
return $self->{$dbh} ge $self->parse($target);
}

1;

# ###########################################################################
# End VersionParser package
# ###########################################################################

请使用浏览器的分享功能分享到微信等