使用perl比較mysql的版本

bulletming發表於2019-06-22

他就是利用了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
# ###########################################################################

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82392/viewspace-144730/,如需轉載,請註明出處,否則將追究法律責任。

相關文章