#!/usr/bin/env perl use strict; use warnings; while (<>) { if (/^ \s* BuildRequires \s* : \s* (.+)/x) { my $prereqs = $1; for ($prereqs) { while (1) { my ($pkg, $op, $ver); if (m{ \G \s* (\S+) \s* (>=|>|<|<=) \s* (\d+(?:\.\d+)*) (?:\s* , \s*)? }xgc) { ($pkg, $op, $ver) = ($1, $2, $3); } elsif (m{ \G \s* (\S+) (?:\s* , \s*)? }xgc) { $pkg = $1; } elsif (m{ \G . }) { die "Syntax error: $&\n"; } else { last; } warn "Package($pkg), Op($op), Ver($ver)\n"; } } } }