Condition Coverage

blib/lib/Net/API/Telegram.pm
Criterion Covered Total %
condition 0 604 0.0


and 3 conditions

line !l l&&!r l&&r condition
151 0 0 0 $self->{'authorised_ips'} and ref $self->{'authorised_ips'} eq 'ARRAY'
188 0 0 0 &Scalar::Util::blessed($raw) and $raw->isa('Net::IP')
300 0 0 0 ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANTARRAY and not ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
337 0 0 0 ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANTARRAY and not ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
347 0 0 0 -e $file and not -w $file
456 0 0 0 &Scalar::Util::blessed($msg[0]) and $msg[0]->isa('Net::API::Telegram::Message')
463 0 0 0 $self->{'logging'} and $self->{'log_file'} || $self->{'_log_io'}
633 0 0 0 ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANTARRAY and not ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
750 0 0 0 $self->{'use_ssl'} and $self->{'ssl_cert'}
885 0 0 0 $check_messages_after and $msg_epoch
0 0 0 $check_messages_after and $msg_epoch and $msg_epoch > $check_messages_after
0 0 0 $msg_epoch and $msg_epoch > $start
981 0 0 0 $check_messages_after and $msg_epoch
0 0 0 $check_messages_after and $msg_epoch and $msg_epoch > $check_messages_after
0 0 0 $msg_epoch and $msg_epoch > $start
1065 0 0 0 defined $v and not $v =~ /^\d+$/
1167 0 0 0 length $opts->{'shipping_options'} and ref $opts->{'shipping_options'} ne 'ARRAY'
1168 0 0 0 length $opts->{'shipping_options'} and not $self->_param_check_array_object(qr/^(?:Net::API::Telegram::ShippingOption)$/, @_)
1191 0 0 0 length $opts->{'mask_position'} and ref $opts->{'mask_position'} ne 'Net::API::Telegram::MaskPosition'
1320 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
1349 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
1378 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
1405 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
1432 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
1695 0 0 0 length $opts->{'allowed_updates'} and ref $opts->{'allowed_updates'} ne 'ARRAY'
1881 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
1882 0 0 0 length $opts->{'thumb'} and not ref($opts->{'thumb'}) =~ /^(?:Net::API::Telegram::InputFile)$/
1909 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
1910 0 0 0 length $opts->{'thumb'} and not ref($opts->{'thumb'}) =~ /^(?:Net::API::Telegram::InputFile)$/
1959 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
1986 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
1987 0 0 0 length $opts->{'thumb'} and not ref($opts->{'thumb'}) =~ /^(?:Net::API::Telegram::InputFile)$/
2012 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
2043 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
2072 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2129 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2157 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2185 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2210 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2240 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2266 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2267 0 0 0 length $opts->{'thumb'} and not ref($opts->{'thumb'}) =~ /^(?:Net::API::Telegram::InputFile)$/
2294 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2295 0 0 0 length $opts->{'thumb'} and not ref($opts->{'thumb'}) =~ /^(?:Net::API::Telegram::InputFile)$/
2322 0 0 0 length $opts->{'reply_markup'} and not ref($opts->{'reply_markup'}) =~ /^(?:Net::API::Telegram::InlineKeyboardMarkup|Net::API::Telegram::ReplyKeyboardMarkup|Net::API::Telegram::ReplyKeyboardRemove|Net::API::Telegram::ForceReply)$/
2511 0 0 0 $opts->{'certificate'} and $self->{'ssl_cert'}
2512 0 0 0 length $opts->{'allowed_updates'} and ref $opts->{'allowed_updates'} ne 'ARRAY'
2513 0 0 0 length $opts->{'certificate'} and ref $opts->{'certificate'} ne 'Net::API::Telegram::InputFile'
2535 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
2565 0 0 0 length $opts->{'reply_markup'} and ref $opts->{'reply_markup'} ne 'Net::API::Telegram::InlineKeyboardMarkup'
2669 0 0 0 $pkg and $pkg =~ /^AI::Net::Stripe/
0 0 0 $pkg and $pkg =~ /^AI::Net::Stripe/ and exists $value->{'id'}
2723 0 0 0 exists $hash->{'parameters'} and ref $hash->{'parameters'} eq 'HASH'
2740 0 0 0 exists $self->{$name} and &Scalar::Util::blessed($self->{$name})
2780 0 0 0 exists $args->{'file'} and exists $args->{'line'}
2806 0 0 0 ref($this) =~ /Net::API::Telegram::/ and $this->can('debug')
2916 0 0 0 $hash and ref $hash ne 'HASH'
2927 0 0 0 ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANTARRAY and not ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
2937 0 0 0 $arr and ref $arr ne 'ARRAY'
2953 0 0 0 ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANTARRAY and not ref $Nice::Try::RETVAL[0] && $Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')

or 2 conditions

line l !l condition
163 0 0 $self->{'timeout'} || 3
287 0 0 'IO::File'->new("<$file") || (return $self->error("Unable to open configuration file ${file}: $!"))
330 0 0 'IO::File'->new(">$file") || (return $self->error("Unable to write to file ${file}: $!"))
348 0 0 'IO::File'->new(">>$file") || (return $self->error(qq[Unable to open debug log file "$file" in append mode: $!]))
403 0 0 $self->{'port'} || 8443
421 0 0 'HTTP::Daemon::SSL'->new(%$params) || (return $self->error("Could not launch the HTTP daemon: $!"))
426 0 0 'HTTP::Daemon'->new(%$params) || (return $self->error("Could not launch the HTTP daemon: $!"))
472 0 0 'IO::File'->new(">>$self->{'log_file'}") || (return $self->error("Unable to open log file $self->{'log_file'} in append mode: $!"))
536 0 0 $obj->filename || 'certificate.pem'
542 0 0 $self->_load_file($data->{'certificate'}) || (return $self->error("Unable to load the ssl certificate $data->{'certificate'}"))
748 0 0 $self->{'max_connections'} || 1
957 0 0 $self->{'poll_interval'} || 10
1100 0 0 $self->_param2hash(@_) || (return undef())
1103 0 0 $self->query({'method', 'answerCallbackQuery', 'data', $form}) || (return $self->error('Unable to make post query for method answerCallbackQuery: ', $self->error->message))
1120 0 0 $self->_param2hash(@_) || (return undef())
1127 0 0 $self->query({'method', 'answerInlineQuery', 'data', $form}) || (return $self->error('Unable to make post query for method answerInlineQuery: ', $self->error->message))
1144 0 0 $self->_param2hash(@_) || (return undef())
1148 0 0 $self->query({'method', 'answerPreCheckoutQuery', 'data', $form}) || (return $self->error('Unable to make post query for method answerPreCheckoutQuery: ', $self->error->message))
1165 0 0 $self->_param2hash(@_) || (return undef())
1172 0 0 $self->query({'method', 'answerShippingQuery', 'data', $form}) || (return $self->error('Unable to make post query for method answerShippingQuery: ', $self->error->message))
1189 0 0 $self->_param2hash(@_) || (return undef())
1199 0 0 $self->query({'method', 'createNewStickerSet', 'data', $form}) || (return $self->error('Unable to make post query for method createNewStickerSet: ', $self->error->message))
1216 0 0 $self->_param2hash(@_) || (return undef())
1220 0 0 $self->query({'method', 'deleteChatPhoto', 'data', $form}) || (return $self->error('Unable to make post query for method deleteChatPhoto: ', $self->error->message))
1237 0 0 $self->_param2hash(@_) || (return undef())
1241 0 0 $self->query({'method', 'deleteChatStickerSet', 'data', $form}) || (return $self->error('Unable to make post query for method deleteChatStickerSet: ', $self->error->message))
1258 0 0 $self->_param2hash(@_) || (return undef())
1263 0 0 $self->query({'method', 'deleteMessage', 'data', $form}) || (return $self->error('Unable to make post query for method deleteMessage: ', $self->error->message))
1280 0 0 $self->_param2hash(@_) || (return undef())
1283 0 0 $self->query({'method', 'deleteStickerFromSet', 'data', $form}) || (return $self->error('Unable to make post query for method deleteStickerFromSet: ', $self->error->message))
1300 0 0 $self->_param2hash(@_) || (return undef())
1302 0 0 $self->query({'method', 'deleteWebhook', 'data', $form}) || (return $self->error('Unable to make post query for method deleteWebhook: ', $self->error->message))
1319 0 0 $self->_param2hash(@_) || (return undef())
1323 0 0 $self->query({'method', 'editMessageCaption', 'data', $form}) || (return $self->error('Unable to make post query for method editMessageCaption: ', $self->error->message))
1333 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
1346 0 0 $self->_param2hash(@_) || (return undef())
1352 0 0 $self->query({'method', 'editMessageLiveLocation', 'data', $form}) || (return $self->error('Unable to make post query for method editMessageLiveLocation: ', $self->error->message))
1362 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
1375 0 0 $self->_param2hash(@_) || (return undef())
1381 0 0 $self->query({'method', 'editMessageMedia', 'data', $form}) || (return $self->error('Unable to make post query for method editMessageMedia: ', $self->error->message))
1391 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
1404 0 0 $self->_param2hash(@_) || (return undef())
1408 0 0 $self->query({'method', 'editMessageReplyMarkup', 'data', $form}) || (return $self->error('Unable to make post query for method editMessageReplyMarkup: ', $self->error->message))
1418 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
1431 0 0 $self->_param2hash(@_) || (return undef())
1436 0 0 $self->query({'method', 'editMessageText', 'data', $form}) || (return $self->error('Unable to make post query for method editMessageText: ', $self->error->message))
1446 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
1459 0 0 $self->_param2hash(@_) || (return undef())
1463 0 0 $self->query({'method', 'exportChatInviteLink', 'data', $form}) || (return $self->error('Unable to make post query for method exportChatInviteLink: ', $self->error->message))
1480 0 0 $self->_param2hash(@_) || (return undef())
1487 0 0 $self->query({'method', 'forwardMessage', 'data', $form}) || (return $self->error('Unable to make post query for method forwardMessage: ', $self->error->message))
1498 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
1506 0 0 $self->_param2hash(@_) || (return undef())
1510 0 0 $self->query({'method', 'getChat', 'data', $form}) || (return $self->error('Unable to make post query for method getChat: ', $self->error->message))
1521 0 0 $self->_response_to_object('Net::API::Telegram::Chat', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Chat object with this data returned: ', sub { $self->dumper($h); } ))
1529 0 0 $self->_param2hash(@_) || (return undef())
1533 0 0 $self->query({'method', 'getChatAdministrators', 'data', $form}) || (return $self->error('Unable to make post query for method getChatAdministrators: ', $self->error->message))
1547 0 0 $self->_response_to_object('Net::API::Telegram::ChatMember', $h) || (return $self->error('Unable to create an Net::API::Telegram::ChatMember object with this data returned: ', sub { $self->dumper($h); } ))
1557 0 0 $self->_param2hash(@_) || (return undef())
1562 0 0 $self->query({'method', 'getChatMember', 'data', $form}) || (return $self->error('Unable to make post query for method getChatMember: ', $self->error->message))
1573 0 0 $self->_response_to_object('Net::API::Telegram::ChatMember', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::ChatMember object with this data returned: ', sub { $self->dumper($h); } ))
1581 0 0 $self->_param2hash(@_) || (return undef())
1585 0 0 $self->query({'method', 'getChatMembersCount', 'data', $form}) || (return $self->error('Unable to make post query for method getChatMembersCount: ', $self->error->message))
1602 0 0 $self->_param2hash(@_) || (return undef())
1605 0 0 $self->query({'method', 'getFile', 'data', $form}) || (return $self->error('Unable to make post query for method getFile: ', $self->error->message))
1616 0 0 $self->_response_to_object('Net::API::Telegram::File', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::File object with this data returned: ', sub { $self->dumper($h); } ))
1624 0 0 $self->_param2hash(@_) || (return undef())
1627 0 0 $self->query({'method', 'getGameHighScores', 'data', $form}) || (return $self->error('Unable to make post query for method getGameHighScores: ', $self->error->message))
1641 0 0 $self->_response_to_object('Net::API::Telegram::GameHighScore', $h) || (return $self->error('Unable to create an Net::API::Telegram::GameHighScore object with this data returned: ', sub { $self->dumper($h); } ))
1651 0 0 $self->_param2hash(@_) || (return undef())
1653 0 0 $self->query({'method', 'getMe', 'data', $form}) || (return $self->error('Unable to make post query for method getMe: ', $self->error->message))
1664 0 0 $self->_response_to_object('Net::API::Telegram::User', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::User object with this data returned: ', sub { $self->dumper($h); } ))
1672 0 0 $self->_param2hash(@_) || (return undef())
1675 0 0 $self->query({'method', 'getStickerSet', 'data', $form}) || (return $self->error('Unable to make post query for method getStickerSet: ', $self->error->message))
1686 0 0 $self->_response_to_object('Net::API::Telegram::StickerSet', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::StickerSet object with this data returned: ', sub { $self->dumper($h); } ))
1694 0 0 $self->_param2hash(@_) || (return undef())
1697 0 0 $self->query({'method', 'getUpdates', 'data', $form}) || (return $self->error('Unable to make post query for method getUpdates: ', $self->error->message))
1711 0 0 $self->_response_to_object('Net::API::Telegram::Update', $h) || (return $self->error('Unable to create an Net::API::Telegram::Update object with this data returned: ', sub { $self->dumper($h); } ))
1721 0 0 $self->_param2hash(@_) || (return undef())
1724 0 0 $self->query({'method', 'getUserProfilePhotos', 'data', $form}) || (return $self->error('Unable to make post query for method getUserProfilePhotos: ', $self->error->message))
1735 0 0 $self->_response_to_object('Net::API::Telegram::UserProfilePhotos', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::UserProfilePhotos object with this data returned: ', sub { $self->dumper($h); } ))
1743 0 0 $self->_param2hash(@_) || (return undef())
1745 0 0 $self->query({'method', 'getWebhookInfo', 'data', $form}) || (return $self->error('Unable to make post query for method getWebhookInfo: ', $self->error->message))
1756 0 0 $self->_response_to_object('Net::API::Telegram::WebhookInfo', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::WebhookInfo object with this data returned: ', sub { $self->dumper($h); } ))
1764 0 0 $self->_param2hash(@_) || (return undef())
1769 0 0 $self->query({'method', 'kickChatMember', 'data', $form}) || (return $self->error('Unable to make post query for method kickChatMember: ', $self->error->message))
1786 0 0 $self->_param2hash(@_) || (return undef())
1790 0 0 $self->query({'method', 'leaveChat', 'data', $form}) || (return $self->error('Unable to make post query for method leaveChat: ', $self->error->message))
1807 0 0 $self->_param2hash(@_) || (return undef())
1812 0 0 $self->query({'method', 'pinChatMessage', 'data', $form}) || (return $self->error('Unable to make post query for method pinChatMessage: ', $self->error->message))
1829 0 0 $self->_param2hash(@_) || (return undef())
1834 0 0 $self->query({'method', 'promoteChatMember', 'data', $form}) || (return $self->error('Unable to make post query for method promoteChatMember: ', $self->error->message))
1851 0 0 $self->_param2hash(@_) || (return undef())
1859 0 0 $self->query({'method', 'restrictChatMember', 'data', $form}) || (return $self->error('Unable to make post query for method restrictChatMember: ', $self->error->message))
1876 0 0 $self->_param2hash(@_) || (return undef())
1885 0 0 $self->query({'method', 'sendAnimation', 'data', $form}) || (return $self->error('Unable to make post query for method sendAnimation: ', $self->error->message))
1896 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
1904 0 0 $self->_param2hash(@_) || (return undef())
1913 0 0 $self->query({'method', 'sendAudio', 'data', $form}) || (return $self->error('Unable to make post query for method sendAudio: ', $self->error->message))
1924 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
1932 0 0 $self->_param2hash(@_) || (return undef())
1937 0 0 $self->query({'method', 'sendChatAction', 'data', $form}) || (return $self->error('Unable to make post query for method sendChatAction: ', $self->error->message))
1954 0 0 $self->_param2hash(@_) || (return undef())
1962 0 0 $self->query({'method', 'sendContact', 'data', $form}) || (return $self->error('Unable to make post query for method sendContact: ', $self->error->message))
1973 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
1981 0 0 $self->_param2hash(@_) || (return undef())
1990 0 0 $self->query({'method', 'sendDocument', 'data', $form}) || (return $self->error('Unable to make post query for method sendDocument: ', $self->error->message))
2001 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2009 0 0 $self->_param2hash(@_) || (return undef())
2015 0 0 $self->query({'method', 'sendGame', 'data', $form}) || (return $self->error('Unable to make post query for method sendGame: ', $self->error->message))
2026 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2034 0 0 $self->_param2hash(@_) || (return undef())
2048 0 0 $self->query({'method', 'sendInvoice', 'data', $form}) || (return $self->error('Unable to make post query for method sendInvoice: ', $self->error->message))
2059 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2067 0 0 $self->_param2hash(@_) || (return undef())
2075 0 0 $self->query({'method', 'sendLocation', 'data', $form}) || (return $self->error('Unable to make post query for method sendLocation: ', $self->error->message))
2086 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2094 0 0 $self->_param2hash(@_) || (return undef())
2102 0 0 $self->query({'method', 'sendMediaGroup', 'data', $form}) || (return $self->error('Unable to make post query for method sendMediaGroup: ', $self->error->message))
2116 0 0 $self->_response_to_object('Net::API::Telegram::Message', $h) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2126 0 0 $self->_param2hash(@_) || (return undef())
2133 0 0 $self->query({'method', 'sendMessage', 'data', $form}) || (return $self->error('Unable to make post query for method sendMessage: ', $self->error->message))
2144 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2152 0 0 $self->_param2hash(@_) || (return undef())
2160 0 0 $self->query({'method', 'sendPhoto', 'data', $form}) || (return $self->error('Unable to make post query for method sendPhoto: ', $self->error->message))
2171 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2179 0 0 $self->_param2hash(@_) || (return undef())
2188 0 0 $self->query({'method', 'sendPoll', 'data', $form}) || (return $self->error('Unable to make post query for method sendPoll: ', $self->error->message))
2199 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2207 0 0 $self->_param2hash(@_) || (return undef())
2215 0 0 $self->query({'method', 'sendSticker', 'data', $form}) || (return $self->error('Unable to make post query for method sendSticker: ', $self->error->message))
2226 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2234 0 0 $self->_param2hash(@_) || (return undef())
2244 0 0 $self->query({'method', 'sendVenue', 'data', $form}) || (return $self->error('Unable to make post query for method sendVenue: ', $self->error->message))
2255 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2263 0 0 $self->_param2hash(@_) || (return undef())
2272 0 0 $self->query({'method', 'sendVideo', 'data', $form}) || (return $self->error('Unable to make post query for method sendVideo: ', $self->error->message))
2283 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2291 0 0 $self->_param2hash(@_) || (return undef())
2300 0 0 $self->query({'method', 'sendVideoNote', 'data', $form}) || (return $self->error('Unable to make post query for method sendVideoNote: ', $self->error->message))
2311 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2319 0 0 $self->_param2hash(@_) || (return undef())
2327 0 0 $self->query({'method', 'sendVoice', 'data', $form}) || (return $self->error('Unable to make post query for method sendVoice: ', $self->error->message))
2338 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Unable to create an Net::API::Telegram::Message object with this data returned: ', sub { $self->dumper($h); } ))
2346 0 0 $self->_param2hash(@_) || (return undef())
2350 0 0 $self->query({'method', 'setChatDescription', 'data', $form}) || (return $self->error('Unable to make post query for method setChatDescription: ', $self->error->message))
2367 0 0 $self->_param2hash(@_) || (return undef())
2374 0 0 $self->query({'method', 'setChatPermissions', 'data', $form}) || (return $self->error('Unable to make post query for method setChatPermissions: ', $self->error->message))
2391 0 0 $self->_param2hash(@_) || (return undef())
2398 0 0 $self->query({'method', 'setChatPhoto', 'data', $form}) || (return $self->error('Unable to make post query for method setChatPhoto: ', $self->error->message))
2415 0 0 $self->_param2hash(@_) || (return undef())
2420 0 0 $self->query({'method', 'setChatStickerSet', 'data', $form}) || (return $self->error('Unable to make post query for method setChatStickerSet: ', $self->error->message))
2437 0 0 $self->_param2hash(@_) || (return undef())
2442 0 0 $self->query({'method', 'setChatTitle', 'data', $form}) || (return $self->error('Unable to make post query for method setChatTitle: ', $self->error->message))
2459 0 0 $self->_param2hash(@_) || (return undef())
2463 0 0 $self->query({'method', 'setGameScore', 'data', $form}) || (return $self->error('Unable to make post query for method setGameScore: ', $self->error->message))
2473 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
2486 0 0 $self->_param2hash(@_) || (return undef())
2493 0 0 $self->query({'method', 'setPassportDataErrors', 'data', $form}) || (return $self->error('Unable to make post query for method setPassportDataErrors: ', $self->error->message))
2510 0 0 $self->_param2hash(@_) || (return undef())
2517 0 0 $self->query({'method', 'setWebhook', 'data', $form}) || (return $self->error('Unable to make post query for method setWebhook: ', $self->error->message))
2534 0 0 $self->_param2hash(@_) || (return undef())
2538 0 0 $self->query({'method', 'stopMessageLiveLocation', 'data', $form}) || (return $self->error('Unable to make post query for method stopMessageLiveLocation: ', $self->error->message))
2548 0 0 $self->_response_to_object('Net::API::Telegram::Message', $hash->{'result'}) || (return $self->error('Error while getting an object out of hash for this message: ', $self->error))
2561 0 0 $self->_param2hash(@_) || (return undef())
2568 0 0 $self->query({'method', 'stopPoll', 'data', $form}) || (return $self->error('Unable to make post query for method stopPoll: ', $self->error->message))
2578 0 0 $self->_response_to_object('Net::API::Telegram::Poll', $hash->{'result'}) || (return $self->error('Error while getting a Poll object out of hash for this message: ', $self->error))
2587 0 0 $self->_param2hash(@_) || (return undef())
2592 0 0 $self->query({'method', 'unbanChatMember', 'data', $form}) || (return $self->error('Unable to make post query for method unbanChatMember: ', $self->error->message))
2609 0 0 $self->_param2hash(@_) || (return undef())
2613 0 0 $self->query({'method', 'unpinChatMessage', 'data', $form}) || (return $self->error('Unable to make post query for method unpinChatMessage: ', $self->error->message))
2630 0 0 $self->_param2hash(@_) || (return undef())
2636 0 0 $self->query({'method', 'uploadStickerFile', 'data', $form}) || (return $self->error('Unable to make post query for method uploadStickerFile: ', $self->error->message))
2646 0 0 $self->_response_to_object('Net::API::Telegram::File', $hash->{'result'}) || (return $self->error('Error while getting a File object out of hash for this message: ', $self->error))
2712 0 0 shift @_ || (return $self->error('No hash reference was provided to check if it contains a Telegram api error.'))
2742 0 0 $class->new('debug', $self->debug, 'verbose', $self->verbose) || (return $self->error($class->error))
2767 0 0 shift @_ || (return $self->error('No file path to load into memory was provided'))
2796 0 0 shift @_ || (return)
2900 0 0 shift @_ || (return $self->error('No pattern to check array of objects was provided.'))
2901 0 0 shift @_ || (return $self->error('No array of objects was provided.'))
2915 0 0 shift @_ || (return $self->error('No hash was provided'))
2936 0 0 shift @_ || (return $self->error('No array reference was provided'))

or 3 conditions

line l !l&&r !l&&!r condition
195 0 0 0 'Net::IP'->new($raw) || do { warn "Warning only: IP '${raw}' is not valid: ", 'Net::IP'->Error, "\n"; push @$err, sprintf("IP '${raw}' is not valid: %s", 'Net::IP'->Error); return '' }
459 0 0 0 $msg->chat->title || $msg->chat->username || ($msg->from ? join(' ', $msg->from->first_name, $msg->from->last_name) : 'unknown')
463 0 0 0 $self->{'log_file'} || $self->{'_log_io'}
577 0 0 0 $opts->{'encode_with_json'} or $self->encode_with_json
620 0 0 0 $hash->{'error'} // $hash
725 0 0 0 $self->{'use_ssl'} or $self->{'external_ssl'}
762 0 0 0 $self->{'_stop_daemon'} or $TIME_TO_DIE
767 0 0 0 $httpd->accept || do { $self->log("Unable to accept queries on tcp port $self->{'port'}"); next if $! == 4; warn "Error on accept: $!\n"; next }
870 0 0 0 $self->_response_to_object('Net::API::Telegram::Update', $res) || do { $self->message(1, 'Error trying to instantiate object Net::API::Telegram::Update: ', $self->error->message); $self->error('Could not create a Net::API::Telegram::Update with following data: ' . $self->dumper($res)); $client->send_response('HTTP::Response'->new(500)); next }
885 0 0 0 not $self->{'skip_past_messages'} or $check_messages_after and $msg_epoch and $msg_epoch > $check_messages_after
0 0 0 not $self->{'skip_past_messages'} or $check_messages_after and $msg_epoch and $msg_epoch > $check_messages_after or $msg_epoch and $msg_epoch > $start
963 0 0 0 $self->getUpdates('offset', $self->{'offset'}) || do { $self->error('Error while trying to get update: ', $self->error->message); sleep 1; next }
981 0 0 0 not $self->{'skip_past_messages'} or $check_messages_after and $msg_epoch and $msg_epoch > $check_messages_after
0 0 0 not $self->{'skip_past_messages'} or $check_messages_after and $msg_epoch and $msg_epoch > $check_messages_after or $msg_epoch and $msg_epoch > $start
2682 0 0 0 ref $sv or not length $sv