use warnings; use strict; use Data::Dump; use Mojo::DOM; my $html = <<'END_HTML'; 54MB used 1.44GB remaining END_HTML my $dom = Mojo::DOM->new($html); for my $e ($dom->find('span[class="remaining-data"]')->each) { dd $e->text; my ($val,$unit) = $e->text =~ /([+-]?(?:\d*\.)?\d+)(MB|GB) used/ or die "Couldn't parse '".$e->text."'"; dd $val, $unit; } __END__ "54MB used" (54, "MB")