| line |
true |
false |
branch |
|
208
|
1005 |
0 |
if (idx >= 0 && idx < g_once_count) { |
|
|
1005 |
0 |
if (idx >= 0 && idx < g_once_count) { |
|
210
|
0 |
1005 |
if (of->func) { |
|
214
|
1005 |
0 |
if (of->result) { |
|
238
|
1012 |
0 |
if (idx >= 0 && idx < g_partial_count) { |
|
|
1012 |
0 |
if (idx >= 0 && idx < g_partial_count) { |
|
240
|
1012 |
0 |
if (pf->func) { |
|
244
|
1012 |
0 |
if (pf->bound_args) { |
|
260
|
212 |
0 |
if (idx >= 0 && idx < g_memo_count) { |
|
|
212 |
0 |
if (idx >= 0 && idx < g_memo_count) { |
|
262
|
212 |
0 |
if (mf->func) { |
|
266
|
212 |
0 |
if (mf->cache) { |
|
284
|
1008 |
0 |
if (idx >= 0 && idx < g_lazy_count) { |
|
|
1008 |
0 |
if (idx >= 0 && idx < g_lazy_count) { |
|
286
|
0 |
1008 |
if (lv->thunk) { |
|
290
|
1008 |
0 |
if (lv->value) { |
|
307
|
1010 |
0 |
if (funcs) { |
|
321
|
8 |
0 |
if (idx >= 0 && idx < g_always_count && g_always_values[idx]) { |
|
|
8 |
0 |
if (idx >= 0 && idx < g_always_count && g_always_values[idx]) { |
|
|
8 |
0 |
if (idx >= 0 && idx < g_always_count && g_always_values[idx]) { |
|
337
|
4 |
209 |
if (needed >= g_memo_size) { |
|
338
|
4 |
0 |
IV new_size = g_memo_size ? g_memo_size * 2 : 16; |
|
339
|
0 |
4 |
while (new_size <= needed) new_size *= 2; |
|
340
|
0 |
4 |
Renew(g_memos, new_size, MemoizedFunc); |
|
346
|
6 |
1002 |
if (needed >= g_lazy_size) { |
|
347
|
6 |
0 |
IV new_size = g_lazy_size ? g_lazy_size * 2 : 16; |
|
348
|
0 |
6 |
while (new_size <= needed) new_size *= 2; |
|
349
|
0 |
6 |
Renew(g_lazies, new_size, LazyValue); |
|
355
|
0 |
8 |
if (needed >= g_always_size) { |
|
356
|
0 |
0 |
IV new_size = g_always_size ? g_always_size * 2 : 16; |
|
357
|
0 |
0 |
while (new_size <= needed) new_size *= 2; |
|
358
|
0 |
0 |
Renew(g_always_values, new_size, SV*); |
|
364
|
6 |
999 |
if (needed >= g_once_size) { |
|
365
|
6 |
0 |
IV new_size = g_once_size ? g_once_size * 2 : 16; |
|
366
|
0 |
6 |
while (new_size <= needed) new_size *= 2; |
|
367
|
0 |
6 |
Renew(g_onces, new_size, OnceFunc); |
|
373
|
6 |
1006 |
if (needed >= g_partial_size) { |
|
374
|
6 |
0 |
IV new_size = g_partial_size ? g_partial_size * 2 : 16; |
|
375
|
0 |
6 |
while (new_size <= needed) new_size *= 2; |
|
376
|
0 |
6 |
Renew(g_partials, new_size, PartialFunc); |
|
385
|
850 |
849 |
for (i = 0; i < count; i++) { |
|
386
|
3 |
847 |
if (i > 0) sv_catpvs(key, "\x00"); |
|
387
|
846 |
4 |
if (SvOK(args[i])) { |
|
420
|
1016 |
5010 |
return (SvROK(elem) && SvTYPE(SvRV(elem)) == SVt_PVAV) ? TRUE : FALSE; |
|
|
1006 |
10 |
return (SvROK(elem) && SvTYPE(SvRV(elem)) == SVt_PVAV) ? TRUE : FALSE; |
|
424
|
2017 |
5010 |
return (SvROK(elem) && SvTYPE(SvRV(elem)) == SVt_PVHV) ? TRUE : FALSE; |
|
|
1006 |
1011 |
return (SvROK(elem) && SvTYPE(SvRV(elem)) == SVt_PVHV) ? TRUE : FALSE; |
|
428
|
14 |
9 |
return (SvROK(elem) && SvTYPE(SvRV(elem)) == SVt_PVCV) ? TRUE : FALSE; |
|
|
4 |
10 |
return (SvROK(elem) && SvTYPE(SvRV(elem)) == SVt_PVCV) ? TRUE : FALSE; |
|
432
|
2041259 |
0 |
if (SvIOK(elem)) return SvIV(elem) > 0; |
|
433
|
0 |
0 |
if (SvNOK(elem)) return SvNV(elem) > 0; |
|
434
|
0 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return SvNV(elem) > 0; |
|
|
0 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return SvNV(elem) > 0; |
|
439
|
19081 |
0 |
if (SvIOK(elem)) return SvIV(elem) < 0; |
|
440
|
0 |
0 |
if (SvNOK(elem)) return SvNV(elem) < 0; |
|
441
|
0 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return SvNV(elem) < 0; |
|
|
0 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return SvNV(elem) < 0; |
|
446
|
15069 |
0 |
if (SvIOK(elem)) return SvIV(elem) == 0; |
|
447
|
0 |
0 |
if (SvNOK(elem)) return SvNV(elem) == 0.0; |
|
448
|
0 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return SvNV(elem) == 0.0; |
|
|
0 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return SvNV(elem) == 0.0; |
|
453
|
0 |
30113 |
if (!SvIOK(elem) && !SvNOK(elem)) { |
|
|
0 |
0 |
if (!SvIOK(elem) && !SvNOK(elem)) { |
|
454
|
0 |
0 |
if (!SvPOK(elem) || !looks_like_number(elem)) return FALSE; |
|
|
0 |
0 |
if (!SvPOK(elem) || !looks_like_number(elem)) return FALSE; |
|
461
|
0 |
1054 |
if (!SvIOK(elem) && !SvNOK(elem)) { |
|
|
0 |
0 |
if (!SvIOK(elem) && !SvNOK(elem)) { |
|
462
|
0 |
0 |
if (!SvPOK(elem) || !looks_like_number(elem)) return FALSE; |
|
|
0 |
0 |
if (!SvPOK(elem) || !looks_like_number(elem)) return FALSE; |
|
469
|
1007 |
6038 |
if (!SvOK(elem)) return TRUE; |
|
470
|
2016 |
4022 |
if (SvROK(elem)) { |
|
472
|
1008 |
1008 |
if (SvTYPE(rv) == SVt_PVAV) return AvFILL((AV*)rv) < 0; |
|
|
0 |
1008 |
if (SvTYPE(rv) == SVt_PVAV) return AvFILL((AV*)rv) < 0; |
|
473
|
1008 |
0 |
if (SvTYPE(rv) == SVt_PVHV) return HvKEYS((HV*)rv) == 0; |
|
|
0 |
1008 |
if (SvTYPE(rv) == SVt_PVHV) return HvKEYS((HV*)rv) == 0; |
|
476
|
2022 |
2000 |
if (SvPOK(elem)) return SvCUR(elem) == 0; |
|
485
|
1011 |
1004 |
return (SvPOK(elem) && !SvIOK(elem) && !SvNOK(elem) && !SvROK(elem)) ? TRUE : FALSE; |
|
|
1011 |
0 |
return (SvPOK(elem) && !SvIOK(elem) && !SvNOK(elem) && !SvROK(elem)) ? TRUE : FALSE; |
|
|
1011 |
0 |
return (SvPOK(elem) && !SvIOK(elem) && !SvNOK(elem) && !SvROK(elem)) ? TRUE : FALSE; |
|
|
1011 |
0 |
return (SvPOK(elem) && !SvIOK(elem) && !SvNOK(elem) && !SvROK(elem)) ? TRUE : FALSE; |
|
489
|
3 |
9002 |
if (SvIOK(elem) || SvNOK(elem)) return TRUE; |
|
|
1 |
2 |
if (SvIOK(elem) || SvNOK(elem)) return TRUE; |
|
490
|
2 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) return TRUE; |
|
|
1 |
1 |
if (SvPOK(elem) && looks_like_number(elem)) return TRUE; |
|
495
|
2 |
4 |
if (SvIOK(elem) && !SvNOK(elem)) return TRUE; |
|
|
2 |
0 |
if (SvIOK(elem) && !SvNOK(elem)) return TRUE; |
|
496
|
3 |
1 |
if (SvNOK(elem)) { |
|
500
|
1 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) { |
|
|
1 |
0 |
if (SvPOK(elem) && looks_like_number(elem)) { |
|
512
|
53 |
868 |
if (!g_callback_registry) { |
|
522
|
0 |
53 |
if (!g_callback_registry) return; |
|
527
|
53 |
0 |
if (PL_dirty) { |
|
534
|
0 |
0 |
while ((entry = hv_iternext(g_callback_registry))) { |
|
536
|
0 |
0 |
if (sv && SvOK(sv)) { |
|
|
0 |
0 |
if (sv && SvOK(sv)) { |
|
538
|
0 |
0 |
if (cb) { |
|
539
|
0 |
0 |
if (cb->perl_callback) { |
|
543
|
0 |
0 |
if (cb->name) { |
|
557
|
0 |
41580 |
if (!g_callback_registry) return NULL; |
|
559
|
39550 |
2030 |
if (!svp || !SvOK(*svp)) return NULL; |
|
|
0 |
39550 |
if (!svp || !SvOK(*svp)) return NULL; |
|
590
|
0 |
0 |
if (get_registered_callback(aTHX_ name)) { |
|
613
|
0 |
0 |
if (get_registered_callback(aTHX_ name)) { |
|
636
|
0 |
0 |
if (get_registered_callback(aTHX_ name)) { |
|
662
|
0 |
1006 |
if (!g_callback_registry) return result; |
|
665
|
17110 |
1006 |
while ((entry = hv_iternext(g_callback_registry))) { |
|
708
|
0 |
0 |
XPUSHs(g_always_values[idx]); |
|
719
|
0 |
30 |
if (SP - MARK != 3) { |
|
739
|
6 |
24 |
if (value < min) { |
|
741
|
7 |
17 |
} else if (value > max) { |
|
757
|
0 |
0 |
if (!SvOK(val_sv)) { |
|
773
|
6 |
4 |
SETs(SvROK(sv) ? &PL_sv_yes : &PL_sv_no); |
|
781
|
2 |
2 |
SETs((SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) ? &PL_sv_yes : &PL_sv_no); |
|
|
1 |
1 |
SETs((SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) ? &PL_sv_yes : &PL_sv_no); |
|
789
|
2 |
1 |
SETs((SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) ? &PL_sv_yes : &PL_sv_no); |
|
|
1 |
1 |
SETs((SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) ? &PL_sv_yes : &PL_sv_no); |
|
797
|
2 |
1 |
SETs((SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) ? &PL_sv_yes : &PL_sv_no); |
|
|
1 |
1 |
SETs((SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) ? &PL_sv_yes : &PL_sv_no); |
|
805
|
6 |
3 |
SETs(SvOK(sv) ? &PL_sv_yes : &PL_sv_no); |
|
819
|
1 |
3 |
if (!SvOK(sv)) { |
|
824
|
1 |
2 |
SETs(len == 0 ? &PL_sv_yes : &PL_sv_no); |
|
835
|
13 |
0 |
if (!SvOK(str_sv) || !SvOK(prefix_sv)) { |
|
|
0 |
13 |
if (!SvOK(str_sv) || !SvOK(prefix_sv)) { |
|
844
|
0 |
13 |
if (prefix_len > str_len) { |
|
846
|
1 |
12 |
} else if (prefix_len == 0) { |
|
849
|
4 |
8 |
SETs(memcmp(str, prefix, prefix_len) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
860
|
4 |
0 |
if (!SvOK(str_sv) || !SvOK(suffix_sv)) { |
|
|
0 |
4 |
if (!SvOK(str_sv) || !SvOK(suffix_sv)) { |
|
869
|
0 |
4 |
if (suffix_len > str_len) { |
|
871
|
1 |
3 |
} else if (suffix_len == 0) { |
|
875
|
2 |
1 |
SETs(memcmp(str_end, suffix, suffix_len) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
889
|
2 |
3 |
SETs(SvTRUE(sv) ? &PL_sv_yes : &PL_sv_no); |
|
897
|
2 |
3 |
SETs(SvTRUE(sv) ? &PL_sv_no : &PL_sv_yes); |
|
905
|
4 |
3 |
SETs(SvTRUE(sv) ? &PL_sv_yes : &PL_sv_no); |
|
919
|
3 |
3 |
SETs((SvNIOK(sv) || looks_like_number(sv)) ? &PL_sv_yes : &PL_sv_no); |
|
|
1 |
2 |
SETs((SvNIOK(sv) || looks_like_number(sv)) ? &PL_sv_yes : &PL_sv_no); |
|
928
|
3 |
2 |
if (SvIOK(sv)) { |
|
930
|
1 |
1 |
} else if (SvNOK(sv)) { |
|
933
|
0 |
1 |
SETs((nv == (NV)(IV)nv) ? &PL_sv_yes : &PL_sv_no); |
|
934
|
0 |
1 |
} else if (looks_like_number(sv)) { |
|
941
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
942
|
0 |
0 |
if (pv[i] == '.' || pv[i] == 'e' || pv[i] == 'E') { |
|
|
0 |
0 |
if (pv[i] == '.' || pv[i] == 'e' || pv[i] == 'E') { |
|
|
0 |
0 |
if (pv[i] == '.' || pv[i] == 'e' || pv[i] == 'E') { |
|
947
|
0 |
0 |
if (has_dot) { |
|
950
|
0 |
0 |
SETs((nv == (NV)(IV)nv) ? &PL_sv_yes : &PL_sv_no); |
|
964
|
1 |
2 |
SETs(sv_isobject(sv) ? &PL_sv_yes : &PL_sv_no); |
|
972
|
2 |
1 |
if (SvROK(sv)) { |
|
976
|
1 |
1 |
SETs((type < SVt_PVAV) ? &PL_sv_yes : &PL_sv_no); |
|
988
|
1 |
2 |
SETs(SvRXOK(sv) ? &PL_sv_yes : &PL_sv_no); |
|
996
|
1 |
1 |
SETs((SvTYPE(sv) == SVt_PVGV) ? &PL_sv_yes : &PL_sv_no); |
|
1004
|
0 |
0 |
SETs((SvOK(sv) && !SvROK(sv)) ? &PL_sv_yes : &PL_sv_no); |
|
|
0 |
0 |
SETs((SvOK(sv) && !SvROK(sv)) ? &PL_sv_yes : &PL_sv_no); |
|
1017
|
0 |
8 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
0 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
1019
|
4 |
4 |
SETs((nv > 0) ? &PL_sv_yes : &PL_sv_no); |
|
1030
|
0 |
4 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
0 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
1032
|
2 |
2 |
SETs((nv < 0) ? &PL_sv_yes : &PL_sv_no); |
|
1043
|
0 |
4 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
0 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
1045
|
2 |
2 |
SETs((nv == 0) ? &PL_sv_yes : &PL_sv_no); |
|
1060
|
5 |
0 |
if (SvIOK(sv)) { |
|
1061
|
3 |
2 |
SETs((SvIVX(sv) & 1) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
1062
|
0 |
0 |
} else if (SvNIOK(sv)) { |
|
1064
|
0 |
0 |
if (nv == (NV)(IV)nv) { |
|
1065
|
0 |
0 |
SETs(((IV)nv & 1) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
1069
|
0 |
0 |
} else if (looks_like_number(sv)) { |
|
1070
|
0 |
0 |
SETs((SvIV(sv) & 1) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
1081
|
5 |
0 |
if (SvIOK(sv)) { |
|
1082
|
3 |
2 |
SETs((SvIVX(sv) & 1) == 1 ? &PL_sv_yes : &PL_sv_no); |
|
1083
|
0 |
0 |
} else if (SvNIOK(sv)) { |
|
1085
|
0 |
0 |
if (nv == (NV)(IV)nv) { |
|
1086
|
0 |
0 |
SETs(((IV)nv & 1) == 1 ? &PL_sv_yes : &PL_sv_no); |
|
1090
|
0 |
0 |
} else if (looks_like_number(sv)) { |
|
1091
|
0 |
0 |
SETs((SvIV(sv) & 1) == 1 ? &PL_sv_yes : &PL_sv_no); |
|
1105
|
0 |
0 |
if (SvNIOK(val_sv) || looks_like_number(val_sv)) { |
|
|
0 |
0 |
if (SvNIOK(val_sv) || looks_like_number(val_sv)) { |
|
1109
|
0 |
0 |
SETs((val >= min && val <= max) ? &PL_sv_yes : &PL_sv_no); |
|
|
0 |
0 |
SETs((val >= min && val <= max) ? &PL_sv_yes : &PL_sv_no); |
|
1124
|
2 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
2 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
1126
|
0 |
2 |
SETs(AvFILL(av) < 0 ? &PL_sv_yes : &PL_sv_no); |
|
|
1 |
1 |
SETs(AvFILL(av) < 0 ? &PL_sv_yes : &PL_sv_no); |
|
1137
|
2 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
|
2 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
1139
|
0 |
2 |
SETs(HvKEYS(hv) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
|
1 |
1 |
SETs(HvKEYS(hv) == 0 ? &PL_sv_yes : &PL_sv_no); |
|
1150
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
1152
|
0 |
3 |
SV *len = sv_2mortal(newSViv(AvFILL(av) + 1)); |
|
1164
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
1166
|
0 |
3 |
SV *size = sv_2mortal(newSViv(HvKEYS(hv))); |
|
1178
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
1180
|
0 |
3 |
if (AvFILL(av) >= 0) { |
|
|
2 |
1 |
if (AvFILL(av) >= 0) { |
|
1182
|
2 |
0 |
SETs(elem ? *elem : &PL_sv_undef); |
|
1196
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
3 |
0 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
1198
|
0 |
3 |
IV last_idx = AvFILL(av); |
|
1199
|
2 |
1 |
if (last_idx >= 0) { |
|
1201
|
2 |
0 |
SETs(elem ? *elem : &PL_sv_undef); |
|
1221
|
0 |
5 |
if (!SvOK(sv)) { |
|
1232
|
11 |
0 |
while (start < end && isSPACE(*start)) { |
|
|
6 |
5 |
while (start < end && isSPACE(*start)) { |
|
1237
|
11 |
0 |
while (end > start && isSPACE(*(end - 1))) { |
|
|
6 |
5 |
while (end > start && isSPACE(*(end - 1))) { |
|
1252
|
0 |
3 |
if (!SvOK(sv)) { |
|
1263
|
7 |
0 |
while (start < end && isSPACE(*start)) { |
|
|
4 |
3 |
while (start < end && isSPACE(*start)) { |
|
1277
|
0 |
3 |
if (!SvOK(sv)) { |
|
1287
|
7 |
0 |
while (end > str && isSPACE(*(end - 1))) { |
|
|
4 |
3 |
while (end > str && isSPACE(*(end - 1))) { |
|
1306
|
1 |
1 |
if (SvOK(val_sv)) { |
|
1323
|
0 |
3 |
if (!SvNIOK(sv) && !looks_like_number(sv)) { |
|
|
0 |
0 |
if (!SvNIOK(sv) && !looks_like_number(sv)) { |
|
1329
|
1 |
2 |
if (nv > 0) { |
|
1331
|
1 |
1 |
} else if (nv < 0) { |
|
1348
|
3 |
1 |
SETs(a <= b ? a_sv : b_sv); |
|
1361
|
2 |
2 |
SETs(a >= b ? a_sv : b_sv); |
|
1378
|
0 |
152 |
if (!op) return FALSE; |
|
1381
|
4 |
148 |
if (op->op_type == OP_RV2SV) { |
|
1383
|
4 |
0 |
if (gvop && gvop->op_type == OP_GV) { |
|
|
4 |
0 |
if (gvop && gvop->op_type == OP_GV) { |
|
1385
|
4 |
0 |
if (gv && GvNAMELEN(gv) == 1 && GvNAME(gv)[0] == '_') { |
|
|
4 |
0 |
if (gv && GvNAMELEN(gv) == 1 && GvNAME(gv)[0] == '_') { |
|
|
4 |
0 |
if (gv && GvNAMELEN(gv) == 1 && GvNAME(gv)[0] == '_') { |
|
1403
|
3 |
0 |
if (!OpHAS_SIBLING(pushop)) { |
|
1408
|
3 |
0 |
argop = OpSIBLING(pushop); |
|
1412
|
3 |
3 |
while (OpHAS_SIBLING(cvop)) { |
|
1413
|
3 |
0 |
cvop = OpSIBLING(cvop); |
|
1417
|
3 |
0 |
if (argop != cvop && OpSIBLING(argop) == cvop) { |
|
|
3 |
0 |
if (argop != cvop && OpSIBLING(argop) == cvop) { |
|
|
3 |
0 |
if (argop != cvop && OpSIBLING(argop) == cvop) { |
|
1422
|
0 |
3 |
if (op_is_dollar_underscore(aTHX_ arg)) { |
|
1448
|
8 |
0 |
if (!OpHAS_SIBLING(pushop)) { |
|
1453
|
8 |
0 |
arg1 = OpSIBLING(pushop); /* value */ |
|
1454
|
0 |
8 |
if (!arg1) return entersubop; |
|
1456
|
8 |
0 |
arg2 = OpSIBLING(arg1); /* min */ |
|
1457
|
0 |
8 |
if (!arg2) return entersubop; |
|
1459
|
8 |
0 |
arg3 = OpSIBLING(arg2); /* max */ |
|
1460
|
0 |
8 |
if (!arg3) return entersubop; |
|
1462
|
8 |
0 |
cvop = OpSIBLING(arg3); /* cv op (should be last) */ |
|
1463
|
8 |
0 |
if (!cvop || OpHAS_SIBLING(cvop)) return entersubop; |
|
|
0 |
8 |
if (!cvop || OpHAS_SIBLING(cvop)) return entersubop; |
|
1470
|
2 |
6 |
if (op_is_dollar_underscore(aTHX_ arg1)) { |
|
1505
|
120 |
0 |
if (!OpHAS_SIBLING(pushop)) { |
|
1510
|
120 |
0 |
argop = OpSIBLING(pushop); |
|
1514
|
120 |
120 |
while (OpHAS_SIBLING(cvop)) { |
|
1515
|
120 |
0 |
cvop = OpSIBLING(cvop); |
|
1519
|
120 |
0 |
if (argop != cvop && OpSIBLING(argop) == cvop) { |
|
|
120 |
0 |
if (argop != cvop && OpSIBLING(argop) == cvop) { |
|
|
120 |
0 |
if (argop != cvop && OpSIBLING(argop) == cvop) { |
|
1523
|
1 |
119 |
if (op_is_dollar_underscore(aTHX_ arg)) { |
|
1583
|
21 |
0 |
if (!OpHAS_SIBLING(pushop)) { |
|
1588
|
21 |
0 |
arg1 = OpSIBLING(pushop); /* string */ |
|
1589
|
0 |
21 |
if (!arg1) return entersubop; |
|
1591
|
21 |
0 |
arg2 = OpSIBLING(arg1); /* prefix/suffix */ |
|
1592
|
0 |
21 |
if (!arg2) return entersubop; |
|
1594
|
21 |
0 |
cvop = OpSIBLING(arg2); /* cv op (should be last) */ |
|
1595
|
21 |
0 |
if (!cvop || OpHAS_SIBLING(cvop)) return entersubop; |
|
|
0 |
21 |
if (!cvop || OpHAS_SIBLING(cvop)) return entersubop; |
|
1598
|
1 |
20 |
if (op_is_dollar_underscore(aTHX_ arg1)) { |
|
1767
|
0 |
213 |
if (items != 1) croak("Usage: Func::Util::memo(\\&func)"); |
|
1770
|
213 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
213 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
1807
|
421 |
428 |
if (cached && SvOK(*cached)) { |
|
|
421 |
0 |
if (cached && SvOK(*cached)) { |
|
1810
|
0 |
421 |
if (SvROK(*cached) && SvTYPE(SvRV(*cached)) == SVt_PVAV) { |
|
|
0 |
0 |
if (SvROK(*cached) && SvTYPE(SvRV(*cached)) == SVt_PVAV) { |
|
1814
|
0 |
0 |
EXTEND(SP, len); |
|
|
0 |
0 |
EXTEND(SP, len); |
|
1815
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
1817
|
0 |
0 |
ST(i) = elem ? *elem : &PL_sv_undef; |
|
1830
|
0 |
428 |
PUSHMARK(SP); |
|
1833
|
428 |
0 |
EXTEND(SP, items); |
|
|
0 |
428 |
EXTEND(SP, items); |
|
1834
|
429 |
428 |
for (i = 0; i < items; i++) { |
|
1843
|
428 |
0 |
if (count == 1) { |
|
1847
|
428 |
0 |
FREETMPS; |
|
1852
|
0 |
0 |
} else if (count > 0) { |
|
1855
|
0 |
0 |
for (i = count - 1; i >= 0; i--) { |
|
1861
|
0 |
0 |
FREETMPS; |
|
1864
|
0 |
0 |
for (i = 0; i < count; i++) { |
|
1866
|
0 |
0 |
ST(i) = elem ? *elem : &PL_sv_undef; |
|
1872
|
0 |
0 |
FREETMPS; |
|
1885
|
0 |
1011 |
if (items < 2) croak("Usage: Func::Util::pipeline($value, \\&fn1, \\&fn2, ...)"); |
|
1890
|
3025 |
1011 |
for (i = 1; i < items; i++) { |
|
1892
|
3025 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
3025 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
1899
|
0 |
3025 |
PUSHMARK(SP); |
|
1900
|
0 |
3025 |
XPUSHs(value); |
|
1909
|
3024 |
1 |
FREETMPS; |
|
1922
|
0 |
1010 |
if (items < 1) croak("Usage: Func::Util::compose(\\&fn1, \\&fn2, ...)"); |
|
1927
|
3020 |
1010 |
for (i = 0; i < items; i++) { |
|
1929
|
3020 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
3020 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
1953
|
3022 |
1011 |
for (i = func_count - 1; i >= 0; i--) { |
|
1955
|
0 |
3022 |
if (!func_ptr) continue; |
|
1959
|
0 |
3022 |
PUSHMARK(SP); |
|
1961
|
1011 |
2011 |
if (i == func_count - 1) { |
|
1963
|
1011 |
0 |
EXTEND(SP, items); |
|
|
0 |
1011 |
EXTEND(SP, items); |
|
1964
|
1011 |
1011 |
for (j = 0; j < items; j++) { |
|
1968
|
0 |
2011 |
XPUSHs(value); |
|
1978
|
3021 |
1 |
FREETMPS; |
|
1981
|
2011 |
1011 |
if (value) SvREFCNT_dec(value); |
|
1985
|
1011 |
0 |
ST(0) = value ? sv_2mortal(value) : &PL_sv_undef; |
|
1995
|
0 |
1008 |
if (items != 1) croak("Usage: Func::Util::lazy(sub { ... })"); |
|
1998
|
1008 |
0 |
if (!SvROK(thunk) || SvTYPE(SvRV(thunk)) != SVt_PVCV) { |
|
|
0 |
1008 |
if (!SvROK(thunk) || SvTYPE(SvRV(thunk)) != SVt_PVCV) { |
|
2023
|
0 |
2018 |
if (items != 1) croak("Usage: Func::Util::force($lazy)"); |
|
2027
|
2014 |
4 |
if (!SvROK(lazy) || !sv_derived_from(lazy, "Func::Util::Lazy")) { |
|
|
1 |
2013 |
if (!SvROK(lazy) || !sv_derived_from(lazy, "Func::Util::Lazy")) { |
|
2033
|
2013 |
0 |
if (idx < 0 || idx >= g_lazy_count) { |
|
|
0 |
2013 |
if (idx < 0 || idx >= g_lazy_count) { |
|
2039
|
1005 |
1008 |
if (lv->forced) { |
|
2046
|
0 |
1008 |
PUSHMARK(SP); |
|
2055
|
1008 |
0 |
FREETMPS; |
|
2071
|
0 |
19124 |
if (items < 2) croak("Usage: Func::Util::dig($hash, @keys)"); |
|
2076
|
47354 |
13117 |
for (i = 1; i < items; i++) { |
|
2077
|
47353 |
1 |
if (!SvROK(current) || SvTYPE(SvRV(current)) != SVt_PVHV) { |
|
|
3000 |
44353 |
if (!SvROK(current) || SvTYPE(SvRV(current)) != SVt_PVHV) { |
|
2087
|
41349 |
3004 |
if (!val || !SvOK(*val)) { |
|
|
2 |
41347 |
if (!val || !SvOK(*val)) { |
|
2104
|
0 |
12105 |
if (items != 2) croak("Usage: Func::Util::tap(\\&block, $value)"); |
|
2109
|
12105 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
12105 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
2118
|
0 |
12105 |
PUSHMARK(SP); |
|
2119
|
0 |
12105 |
XPUSHs(value); |
|
2125
|
0 |
12105 |
FREETMPS; |
|
2139
|
0 |
18161 |
if (items != 3) croak("Usage: Func::Util::clamp($value, $min, $max)"); |
|
2145
|
3014 |
15147 |
if (value < min) { |
|
2147
|
3014 |
12133 |
} else if (value > max) { |
|
2163
|
0 |
16119 |
if (items != 1) croak("Usage: Func::Util::identity($value)"); |
|
2173
|
0 |
8 |
if (items != 1) croak("Usage: Func::Util::always($value)"); |
|
2206
|
0 |
2 |
XPUSHs(&PL_sv_undef); |
|
2252
|
10102 |
2003 |
if (GIMME_V == G_ARRAY) { |
|
2263
|
10102 |
2003 |
if (GIMME_V == G_ARRAY) { |
|
2294
|
0 |
1008 |
if (items != 1) croak("Usage: Func::Util::negate(\\&predicate)"); |
|
2297
|
1008 |
0 |
if (!SvROK(pred) || SvTYPE(SvRV(pred)) != SVt_PVCV) { |
|
|
0 |
1008 |
if (!SvROK(pred) || SvTYPE(SvRV(pred)) != SVt_PVCV) { |
|
2314
|
0 |
12113 |
PUSHMARK(SP); |
|
2317
|
12113 |
0 |
EXTEND(SP, items); |
|
|
0 |
12113 |
EXTEND(SP, items); |
|
2318
|
12113 |
12113 |
for (i = 0; i < items; i++) { |
|
2329
|
12113 |
0 |
FREETMPS; |
|
2332
|
1005 |
11108 |
ST(0) = val ? &PL_sv_no : &PL_sv_yes; |
|
2339
|
0 |
1005 |
if (items != 1) croak("Usage: Func::Util::once(\\&func)"); |
|
2342
|
1005 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
1005 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
2370
|
2010 |
1005 |
if (of->called) { |
|
2371
|
2010 |
0 |
ST(0) = of->result ? of->result : &PL_sv_undef; |
|
2377
|
0 |
1005 |
PUSHMARK(SP); |
|
2386
|
1005 |
0 |
FREETMPS; |
|
2400
|
0 |
1012 |
if (items < 1) croak("Usage: Func::Util::partial(\\&func, @bound_args)"); |
|
2403
|
1012 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
1012 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
2416
|
1012 |
1012 |
for (i = 1; i < items; i++) { |
|
2440
|
0 |
2016 |
PUSHMARK(SP); |
|
2442
|
2016 |
0 |
EXTEND(SP, total); |
|
|
0 |
2016 |
EXTEND(SP, total); |
|
2446
|
2016 |
2016 |
for (i = 0; i < bound_count; i++) { |
|
2448
|
2016 |
0 |
PUSHs(elem ? *elem : &PL_sv_undef); |
|
2452
|
2015 |
2016 |
for (i = 0; i < items; i++) { |
|
2460
|
2016 |
0 |
SV *result = count > 0 ? POPs : &PL_sv_undef; |
|
2463
|
2016 |
0 |
FREETMPS; |
|
2478
|
0 |
12722 |
if (items < 1) croak("Usage: Func::Util::pick(\\%%hash, @keys)"); |
|
2481
|
12722 |
0 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
|
0 |
12722 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
2489
|
25844 |
12722 |
for (i = 1; i < items; i++) { |
|
2495
|
24239 |
1605 |
if (val && SvOK(*val)) { |
|
|
24238 |
1 |
if (val && SvOK(*val)) { |
|
2501
|
10100 |
2622 |
if (GIMME_V == G_ARRAY) { |
|
2503
|
0 |
10100 |
IV n = HvUSEDKEYS(dest); |
|
2505
|
10100 |
0 |
EXTEND(SP, n * 2); |
|
|
0 |
10100 |
EXTEND(SP, n * 2); |
|
2509
|
20200 |
10100 |
while ((he = hv_iternext(dest)) != NULL) { |
|
2511
|
0 |
20200 |
const char *key = HePV(he, klen); |
|
2528
|
0 |
2211 |
if (items != 2) croak("Usage: Func::Util::pluck(\\@array, $field)"); |
|
2531
|
2211 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2211 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2545
|
6625 |
2211 |
for (i = 0; i < len; i++) { |
|
2547
|
6625 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
6625 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
6625 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
2550
|
5422 |
1203 |
if (val && SvOK(*val)) { |
|
|
5422 |
0 |
if (val && SvOK(*val)) { |
|
2568
|
0 |
12710 |
if (items < 1) croak("Usage: Func::Util::omit(\\%%hash, @keys)"); |
|
2571
|
12710 |
0 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
|
0 |
12710 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
2581
|
15315 |
12710 |
for (i = 1; i < items; i++) { |
|
2591
|
41128 |
12710 |
while ((entry = hv_iternext(src)) != NULL) { |
|
2596
|
26219 |
14909 |
if (!hv_exists(exclude, key_pv, key_len)) { |
|
2598
|
26219 |
0 |
if (SvOK(val)) { |
|
2607
|
10100 |
2610 |
if (GIMME_V == G_ARRAY) { |
|
2609
|
0 |
10100 |
IV n = HvUSEDKEYS(dest); |
|
2611
|
10100 |
0 |
EXTEND(SP, n * 2); |
|
|
0 |
10100 |
EXTEND(SP, n * 2); |
|
2615
|
20200 |
10100 |
while ((he = hv_iternext(dest)) != NULL) { |
|
2617
|
0 |
20200 |
const char *key = HePV(he, klen); |
|
2635
|
1 |
2625 |
if (items == 0) { |
|
2639
|
1611 |
1014 |
if (items == 1) { |
|
2644
|
13 |
1001 |
if (items <= 8) { |
|
2647
|
64 |
13 |
for (i = 0; i < items; i++) { |
|
2650
|
62 |
2 |
const char *key_i = SvOK(elem) ? SvPV_const(elem, len_i) : "\x00UNDEF\x00"; |
|
2651
|
2 |
62 |
if (!SvOK(elem)) len_i = 7; |
|
2654
|
91 |
40 |
for (j = 0; j < out; j++) { |
|
2657
|
88 |
3 |
const char *key_j = SvOK(prev) ? SvPV_const(prev, len_j) : "\x00UNDEF\x00"; |
|
2658
|
3 |
88 |
if (!SvOK(prev)) len_j = 7; |
|
2660
|
87 |
4 |
if (len_i == len_j && memcmp(key_i, key_j, len_i) == 0) { |
|
|
24 |
63 |
if (len_i == len_j && memcmp(key_i, key_j, len_i) == 0) { |
|
2665
|
40 |
24 |
if (!dup) ST(out++) = elem; |
|
2675
|
10010 |
1001 |
for (i = 0; i < items; i++) { |
|
2681
|
10010 |
0 |
key = SvOK(elem) ? SvPV_const(elem, len) : (len = 7, "\x00UNDEF\x00"); |
|
2683
|
10010 |
0 |
PERL_HASH(hash, key, len); |
|
2685
|
4004 |
6006 |
if (!hv_common(seen, NULL, key, len, 0, HV_FETCH_ISEXISTS, NULL, hash)) { |
|
2698
|
0 |
2210 |
if (items < 1) croak("Usage: Func::Util::partition(\\&block, @list)"); |
|
2701
|
2210 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
2210 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
2707
|
1 |
2209 |
if (list_len == 0) { |
|
2722
|
2209 |
0 |
SV *orig_defsv = DEFSV; |
|
2725
|
2243 |
2209 |
for (i = 1; i < items; i++) { |
|
2732
|
0 |
2243 |
PUSHMARK(SP); |
|
2733
|
0 |
2243 |
XPUSHs(elem); |
|
2742
|
2243 |
0 |
FREETMPS; |
|
2745
|
2222 |
21 |
if (matched) { |
|
2766
|
0 |
11507 |
if (items != 2) croak("Usage: Func::Util::defaults(\\%%hash, \\%%defaults)"); |
|
2771
|
11507 |
0 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
|
0 |
11507 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
2774
|
11507 |
0 |
if (!SvROK(dref) || SvTYPE(SvRV(dref)) != SVt_PVHV) { |
|
|
0 |
11507 |
if (!SvROK(dref) || SvTYPE(SvRV(dref)) != SVt_PVHV) { |
|
2782
|
0 |
11507 |
IV src_keys = HvUSEDKEYS(src); |
|
2783
|
0 |
11507 |
IV def_keys = HvUSEDKEYS(def); |
|
2790
|
12507 |
11507 |
while ((entry = hv_iternext(src)) != NULL) { |
|
2792
|
0 |
12507 |
const char *key_pv = HePV(entry, key_len); |
|
2799
|
24411 |
11507 |
while ((entry = hv_iternext(def)) != NULL) { |
|
2801
|
0 |
24411 |
const char *key_pv = HePV(entry, key_len); |
|
2806
|
11503 |
12908 |
if (!existing || !SvOK(*existing)) { |
|
|
1 |
11502 |
if (!existing || !SvOK(*existing)) { |
|
2813
|
10100 |
1407 |
if (GIMME_V == G_ARRAY) { |
|
2815
|
0 |
10100 |
IV n = HvUSEDKEYS(dest); |
|
2817
|
10100 |
0 |
EXTEND(SP, n * 2); |
|
|
0 |
10100 |
EXTEND(SP, n * 2); |
|
2821
|
20200 |
10100 |
while ((he = hv_iternext(dest)) != NULL) { |
|
2823
|
0 |
20200 |
const char *key = HePV(he, klen); |
|
2844
|
0 |
20128 |
if (items != 2) croak("Usage: Func::Util::nvl($value, $default)"); |
|
2847
|
8010 |
12118 |
if (SvOK(val)) { |
|
2857
|
0 |
18116 |
if (items < 1) croak("Usage: Func::Util::coalesce($val, ...)"); |
|
2860
|
47329 |
1003 |
for (i = 0; i < items; i++) { |
|
2861
|
17113 |
30216 |
if (SvOK(ST(i))) { |
|
2898
|
3027 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_gt(\\@array, $threshold) or first_gt(\\@array, $key, $threshold)"); |
|
|
0 |
3027 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_gt(\\@array, $threshold) or first_gt(\\@array, $key, $threshold)"); |
|
2901
|
3027 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3027 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2909
|
2026 |
1001 |
if (items == 2) { |
|
2912
|
11097 |
1008 |
for (i = 0; i < len; i++) { |
|
2914
|
11097 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1018 |
10079 |
if (elem && SvNV(*elem) > threshold) { |
|
2923
|
2002 |
0 |
for (i = 0; i < len; i++) { |
|
2925
|
2002 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2002 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2002 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
2928
|
2002 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
1001 |
1001 |
if (val && SvNV(*val) > threshold) { |
|
2943
|
3012 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_lt(\\@array, $threshold) or first_lt(\\@array, $key, $threshold)"); |
|
|
0 |
3012 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_lt(\\@array, $threshold) or first_lt(\\@array, $key, $threshold)"); |
|
2946
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2954
|
2011 |
1001 |
if (items == 2) { |
|
2956
|
8034 |
1004 |
for (i = 0; i < len; i++) { |
|
2958
|
8034 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1007 |
7027 |
if (elem && SvNV(*elem) < threshold) { |
|
2966
|
1001 |
0 |
for (i = 0; i < len; i++) { |
|
2968
|
1001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
2971
|
1001 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1001 |
0 |
if (val && SvNV(*val) < threshold) { |
|
2986
|
3012 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_eq(\\@array, $value) or first_eq(\\@array, $key, $value)"); |
|
|
0 |
3012 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_eq(\\@array, $value) or first_eq(\\@array, $key, $value)"); |
|
2989
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2997
|
2011 |
1001 |
if (items == 2) { |
|
2999
|
10043 |
1004 |
for (i = 0; i < len; i++) { |
|
3001
|
10043 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1007 |
9036 |
if (elem && SvNV(*elem) == target) { |
|
3009
|
2003 |
0 |
for (i = 0; i < len; i++) { |
|
3011
|
2003 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2003 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2003 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3014
|
2003 |
0 |
if (val && SvNV(*val) == target) { |
|
|
1001 |
1002 |
if (val && SvNV(*val) == target) { |
|
3029
|
3014 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_ge(\\@array, $threshold) or first_ge(\\@array, $key, $threshold)"); |
|
|
0 |
3014 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_ge(\\@array, $threshold) or first_ge(\\@array, $key, $threshold)"); |
|
3032
|
3014 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3014 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3040
|
2013 |
1001 |
if (items == 2) { |
|
3042
|
10048 |
1003 |
for (i = 0; i < len; i++) { |
|
3044
|
10048 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1010 |
9038 |
if (elem && SvNV(*elem) >= threshold) { |
|
3052
|
1002 |
0 |
for (i = 0; i < len; i++) { |
|
3054
|
1002 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1002 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1002 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3057
|
1002 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
1001 |
1 |
if (val && SvNV(*val) >= threshold) { |
|
3072
|
3009 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_le(\\@array, $threshold) or first_le(\\@array, $key, $threshold)"); |
|
|
0 |
3009 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_le(\\@array, $threshold) or first_le(\\@array, $key, $threshold)"); |
|
3075
|
3009 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3009 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3083
|
2009 |
1000 |
if (items == 2) { |
|
3085
|
8024 |
1003 |
for (i = 0; i < len; i++) { |
|
3087
|
8024 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1006 |
7018 |
if (elem && SvNV(*elem) <= threshold) { |
|
3095
|
1000 |
0 |
for (i = 0; i < len; i++) { |
|
3097
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3100
|
1000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
1000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
3115
|
2007 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_ne(\\@array, $value) or first_ne(\\@array, $key, $value)"); |
|
|
0 |
2007 |
if (items < 2 || items > 3) croak("Usage: Func::Util::first_ne(\\@array, $value) or first_ne(\\@array, $key, $value)"); |
|
3118
|
2007 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2007 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3126
|
1007 |
1000 |
if (items == 2) { |
|
3128
|
2018 |
2 |
for (i = 0; i < len; i++) { |
|
3130
|
2018 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1005 |
1013 |
if (elem && SvNV(*elem) != target) { |
|
3138
|
2000 |
0 |
for (i = 0; i < len; i++) { |
|
3140
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3143
|
2000 |
0 |
if (val && SvNV(*val) != target) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) != target) { |
|
3162
|
3012 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_gt(\\@array, $threshold) or final_gt(\\@array, $key, $threshold)"); |
|
|
0 |
3012 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_gt(\\@array, $threshold) or final_gt(\\@array, $key, $threshold)"); |
|
3165
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3173
|
2011 |
1001 |
if (items == 2) { |
|
3175
|
8023 |
1005 |
for (i = len - 1; i >= 0; i--) { |
|
3177
|
8023 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1006 |
7017 |
if (elem && SvNV(*elem) > threshold) { |
|
3185
|
1001 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3187
|
1001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3190
|
1001 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
1001 |
0 |
if (val && SvNV(*val) > threshold) { |
|
3204
|
3011 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_lt(\\@array, $threshold) or final_lt(\\@array, $key, $threshold)"); |
|
|
0 |
3011 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_lt(\\@array, $threshold) or final_lt(\\@array, $key, $threshold)"); |
|
3207
|
3011 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3011 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3215
|
2010 |
1001 |
if (items == 2) { |
|
3217
|
11033 |
1003 |
for (i = len - 1; i >= 0; i--) { |
|
3219
|
11033 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1007 |
10026 |
if (elem && SvNV(*elem) < threshold) { |
|
3227
|
2001 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3229
|
2001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2001 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3232
|
2001 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1001 |
1000 |
if (val && SvNV(*val) < threshold) { |
|
3246
|
2005 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_ge(\\@array, $threshold) or final_ge(\\@array, $key, $threshold)"); |
|
|
0 |
2005 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_ge(\\@array, $threshold) or final_ge(\\@array, $key, $threshold)"); |
|
3249
|
2005 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2005 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3257
|
1005 |
1000 |
if (items == 2) { |
|
3259
|
1015 |
2 |
for (i = len - 1; i >= 0; i--) { |
|
3261
|
1015 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1003 |
12 |
if (elem && SvNV(*elem) >= threshold) { |
|
3269
|
1000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3271
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3274
|
1000 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
1000 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
3288
|
2006 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_le(\\@array, $threshold) or final_le(\\@array, $key, $threshold)"); |
|
|
0 |
2006 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_le(\\@array, $threshold) or final_le(\\@array, $key, $threshold)"); |
|
3291
|
2006 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2006 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3299
|
1006 |
1000 |
if (items == 2) { |
|
3301
|
3015 |
1 |
for (i = len - 1; i >= 0; i--) { |
|
3303
|
3015 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1005 |
2010 |
if (elem && SvNV(*elem) <= threshold) { |
|
3311
|
2000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3313
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3316
|
2000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) <= threshold) { |
|
3330
|
2006 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_eq(\\@array, $value) or final_eq(\\@array, $key, $value)"); |
|
|
0 |
2006 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_eq(\\@array, $value) or final_eq(\\@array, $key, $value)"); |
|
3333
|
2006 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2006 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3341
|
1006 |
1000 |
if (items == 2) { |
|
3343
|
3023 |
2 |
for (i = len - 1; i >= 0; i--) { |
|
3345
|
3023 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1004 |
2019 |
if (elem && SvNV(*elem) == target) { |
|
3353
|
3000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3355
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3358
|
3000 |
0 |
if (val && SvNV(*val) == target) { |
|
|
1000 |
2000 |
if (val && SvNV(*val) == target) { |
|
3372
|
2004 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_ne(\\@array, $value) or final_ne(\\@array, $key, $value)"); |
|
|
0 |
2004 |
if (items < 2 || items > 3) croak("Usage: Func::Util::final_ne(\\@array, $value) or final_ne(\\@array, $key, $value)"); |
|
3375
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3383
|
1004 |
1000 |
if (items == 2) { |
|
3385
|
2008 |
1 |
for (i = len - 1; i >= 0; i--) { |
|
3387
|
2008 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1003 |
1005 |
if (elem && SvNV(*elem) != target) { |
|
3395
|
2000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3397
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3400
|
2000 |
0 |
if (val && SvNV(*val) != target) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) != target) { |
|
3415
|
3015 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_gt(\\@array, $threshold) or any_gt(\\@array, $key, $threshold)"); |
|
|
0 |
3015 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_gt(\\@array, $threshold) or any_gt(\\@array, $key, $threshold)"); |
|
3418
|
3015 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3015 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3426
|
2013 |
1002 |
if (items == 2) { |
|
3428
|
14048 |
1008 |
for (i = 0; i < len; i++) { |
|
3430
|
14048 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1005 |
13043 |
if (elem && SvNV(*elem) > threshold) { |
|
3437
|
4004 |
1 |
for (i = 0; i < len; i++) { |
|
3439
|
4004 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4004 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4004 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3442
|
4004 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
1001 |
3003 |
if (val && SvNV(*val) > threshold) { |
|
3455
|
3021 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_lt(\\@array, $threshold) or any_lt(\\@array, $key, $threshold)"); |
|
|
0 |
3021 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_lt(\\@array, $threshold) or any_lt(\\@array, $key, $threshold)"); |
|
3458
|
3021 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3021 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3466
|
2021 |
1000 |
if (items == 2) { |
|
3468
|
8044 |
1005 |
for (i = 0; i < len; i++) { |
|
3470
|
8044 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1016 |
7028 |
if (elem && SvNV(*elem) < threshold) { |
|
3477
|
3000 |
0 |
for (i = 0; i < len; i++) { |
|
3479
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3482
|
3000 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1000 |
2000 |
if (val && SvNV(*val) < threshold) { |
|
3495
|
2007 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_ge(\\@array, $threshold) or any_ge(\\@array, $key, $threshold)"); |
|
|
0 |
2007 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_ge(\\@array, $threshold) or any_ge(\\@array, $key, $threshold)"); |
|
3498
|
2007 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2007 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3506
|
1007 |
1000 |
if (items == 2) { |
|
3508
|
7035 |
2 |
for (i = 0; i < len; i++) { |
|
3510
|
7035 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1005 |
6030 |
if (elem && SvNV(*elem) >= threshold) { |
|
3517
|
4000 |
0 |
for (i = 0; i < len; i++) { |
|
3519
|
4000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3522
|
4000 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
1000 |
3000 |
if (val && SvNV(*val) >= threshold) { |
|
3535
|
2005 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_le(\\@array, $threshold) or any_le(\\@array, $key, $threshold)"); |
|
|
0 |
2005 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_le(\\@array, $threshold) or any_le(\\@array, $key, $threshold)"); |
|
3538
|
2005 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2005 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3546
|
1005 |
1000 |
if (items == 2) { |
|
3548
|
1016 |
2 |
for (i = 0; i < len; i++) { |
|
3550
|
1016 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1003 |
13 |
if (elem && SvNV(*elem) <= threshold) { |
|
3557
|
3000 |
0 |
for (i = 0; i < len; i++) { |
|
3559
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
3000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3562
|
3000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
1000 |
2000 |
if (val && SvNV(*val) <= threshold) { |
|
3575
|
3009 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_eq(\\@array, $value) or any_eq(\\@array, $key, $value)"); |
|
|
0 |
3009 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_eq(\\@array, $value) or any_eq(\\@array, $key, $value)"); |
|
3578
|
3009 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3009 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3586
|
2009 |
1000 |
if (items == 2) { |
|
3588
|
11033 |
1004 |
for (i = 0; i < len; i++) { |
|
3590
|
11033 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1005 |
10028 |
if (elem && SvNV(*elem) == target) { |
|
3597
|
1000 |
0 |
for (i = 0; i < len; i++) { |
|
3599
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
1000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3602
|
1000 |
0 |
if (val && SvNV(*val) == target) { |
|
|
1000 |
0 |
if (val && SvNV(*val) == target) { |
|
3615
|
2004 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_ne(\\@array, $value) or any_ne(\\@array, $key, $value)"); |
|
|
0 |
2004 |
if (items < 2 || items > 3) croak("Usage: Func::Util::any_ne(\\@array, $value) or any_ne(\\@array, $key, $value)"); |
|
3618
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3626
|
1004 |
1000 |
if (items == 2) { |
|
3628
|
2009 |
1 |
for (i = 0; i < len; i++) { |
|
3630
|
2009 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1003 |
1006 |
if (elem && SvNV(*elem) != target) { |
|
3637
|
2000 |
0 |
for (i = 0; i < len; i++) { |
|
3639
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
2000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3642
|
2000 |
0 |
if (val && SvNV(*val) != target) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) != target) { |
|
3657
|
3013 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_gt(\\@array, $threshold) or all_gt(\\@array, $key, $threshold)"); |
|
|
0 |
3013 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_gt(\\@array, $threshold) or all_gt(\\@array, $key, $threshold)"); |
|
3660
|
3013 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3013 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3668
|
3 |
3010 |
if (len == 0) XSRETURN_YES; /* vacuous truth */ |
|
3670
|
2010 |
1000 |
if (items == 2) { |
|
3672
|
8033 |
1005 |
for (i = 0; i < len; i++) { |
|
3674
|
8033 |
0 |
if (!elem || SvNV(*elem) <= threshold) { |
|
|
1005 |
7028 |
if (!elem || SvNV(*elem) <= threshold) { |
|
3681
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3683
|
4000 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
4000 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
4000 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
3688
|
4000 |
0 |
if (!val || SvNV(*val) <= threshold) { |
|
|
0 |
4000 |
if (!val || SvNV(*val) <= threshold) { |
|
3700
|
3009 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_lt(\\@array, $threshold) or all_lt(\\@array, $key, $threshold)"); |
|
|
0 |
3009 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_lt(\\@array, $threshold) or all_lt(\\@array, $key, $threshold)"); |
|
3703
|
3009 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3009 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3711
|
1 |
3008 |
if (len == 0) XSRETURN_YES; |
|
3713
|
2008 |
1000 |
if (items == 2) { |
|
3715
|
10040 |
1004 |
for (i = 0; i < len; i++) { |
|
3717
|
10040 |
0 |
if (!elem || SvNV(*elem) >= threshold) { |
|
|
1004 |
9036 |
if (!elem || SvNV(*elem) >= threshold) { |
|
3724
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3726
|
4000 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
4000 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
4000 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
3731
|
4000 |
0 |
if (!val || SvNV(*val) >= threshold) { |
|
|
0 |
4000 |
if (!val || SvNV(*val) >= threshold) { |
|
3743
|
3019 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_ge(\\@array, $threshold) or all_ge(\\@array, $key, $threshold)"); |
|
|
0 |
3019 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_ge(\\@array, $threshold) or all_ge(\\@array, $key, $threshold)"); |
|
3746
|
3019 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3019 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3754
|
0 |
3019 |
if (len == 0) XSRETURN_YES; |
|
3756
|
2017 |
1002 |
if (items == 2) { |
|
3758
|
8089 |
1013 |
for (i = 0; i < len; i++) { |
|
3760
|
8089 |
0 |
if (!elem || SvNV(*elem) < threshold) { |
|
|
1004 |
7085 |
if (!elem || SvNV(*elem) < threshold) { |
|
3767
|
4003 |
1001 |
for (i = 0; i < len; i++) { |
|
3769
|
4003 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
4003 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
4003 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
3774
|
4003 |
0 |
if (!val || SvNV(*val) < threshold) { |
|
|
1 |
4002 |
if (!val || SvNV(*val) < threshold) { |
|
3786
|
3004 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_le(\\@array, $threshold) or all_le(\\@array, $key, $threshold)"); |
|
|
0 |
3004 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_le(\\@array, $threshold) or all_le(\\@array, $key, $threshold)"); |
|
3789
|
3004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3797
|
0 |
3004 |
if (len == 0) XSRETURN_YES; |
|
3799
|
2004 |
1000 |
if (items == 2) { |
|
3801
|
11023 |
1002 |
for (i = 0; i < len; i++) { |
|
3803
|
11023 |
0 |
if (!elem || SvNV(*elem) > threshold) { |
|
|
1002 |
10021 |
if (!elem || SvNV(*elem) > threshold) { |
|
3810
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3812
|
4000 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
4000 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
4000 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
3817
|
4000 |
0 |
if (!val || SvNV(*val) > threshold) { |
|
|
0 |
4000 |
if (!val || SvNV(*val) > threshold) { |
|
3829
|
2007 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_eq(\\@array, $value) or all_eq(\\@array, $key, $value)"); |
|
|
0 |
2007 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_eq(\\@array, $value) or all_eq(\\@array, $key, $value)"); |
|
3832
|
2007 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2007 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3840
|
1 |
2006 |
if (len == 0) XSRETURN_YES; |
|
3842
|
2006 |
0 |
if (items == 2) { |
|
3844
|
5014 |
1004 |
for (i = 0; i < len; i++) { |
|
3846
|
5014 |
0 |
if (!elem || SvNV(*elem) != target) { |
|
|
1002 |
4012 |
if (!elem || SvNV(*elem) != target) { |
|
3853
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
3855
|
0 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
3860
|
0 |
0 |
if (!val || SvNV(*val) != target) { |
|
|
0 |
0 |
if (!val || SvNV(*val) != target) { |
|
3872
|
2004 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_ne(\\@array, $value) or all_ne(\\@array, $key, $value)"); |
|
|
0 |
2004 |
if (items < 2 || items > 3) croak("Usage: Func::Util::all_ne(\\@array, $value) or all_ne(\\@array, $key, $value)"); |
|
3875
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3883
|
0 |
2004 |
if (len == 0) XSRETURN_YES; |
|
3885
|
2004 |
0 |
if (items == 2) { |
|
3887
|
10018 |
1002 |
for (i = 0; i < len; i++) { |
|
3889
|
10018 |
0 |
if (!elem || SvNV(*elem) == target) { |
|
|
1002 |
9016 |
if (!elem || SvNV(*elem) == target) { |
|
3896
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
3898
|
0 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
|
0 |
0 |
if (!elem || !SvROK(*elem) || SvTYPE(SvRV(*elem)) != SVt_PVHV) { |
|
3903
|
0 |
0 |
if (!val || SvNV(*val) == target) { |
|
|
0 |
0 |
if (!val || SvNV(*val) == target) { |
|
3916
|
3011 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_gt(\\@array, $threshold) or none_gt(\\@array, $key, $threshold)"); |
|
|
0 |
3011 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_gt(\\@array, $threshold) or none_gt(\\@array, $key, $threshold)"); |
|
3919
|
3011 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3011 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3927
|
2011 |
1000 |
if (items == 2) { |
|
3929
|
11039 |
1007 |
for (i = 0; i < len; i++) { |
|
3931
|
11039 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1004 |
10035 |
if (elem && SvNV(*elem) > threshold) { |
|
3938
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3940
|
4000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4000 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3943
|
4000 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
0 |
4000 |
if (val && SvNV(*val) > threshold) { |
|
3956
|
3010 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_lt(\\@array, $threshold) or none_lt(\\@array, $key, $threshold)"); |
|
|
0 |
3010 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_lt(\\@array, $threshold) or none_lt(\\@array, $key, $threshold)"); |
|
3959
|
3010 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3010 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3967
|
2008 |
1002 |
if (items == 2) { |
|
3969
|
8031 |
1005 |
for (i = 0; i < len; i++) { |
|
3971
|
8031 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1003 |
7028 |
if (elem && SvNV(*elem) < threshold) { |
|
3978
|
4003 |
1001 |
for (i = 0; i < len; i++) { |
|
3980
|
4003 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4003 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
4003 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
3983
|
4003 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1 |
4002 |
if (val && SvNV(*val) < threshold) { |
|
3996
|
2004 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_ge(\\@array, $threshold) or none_ge(\\@array, $key, $threshold)"); |
|
|
0 |
2004 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_ge(\\@array, $threshold) or none_ge(\\@array, $key, $threshold)"); |
|
3999
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4007
|
2004 |
0 |
if (items == 2) { |
|
4009
|
8023 |
1002 |
for (i = 0; i < len; i++) { |
|
4011
|
8023 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1002 |
7021 |
if (elem && SvNV(*elem) >= threshold) { |
|
4018
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4020
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
4023
|
0 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
0 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
4036
|
2004 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_le(\\@array, $threshold) or none_le(\\@array, $key, $threshold)"); |
|
|
0 |
2004 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_le(\\@array, $threshold) or none_le(\\@array, $key, $threshold)"); |
|
4039
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4047
|
2004 |
0 |
if (items == 2) { |
|
4049
|
8015 |
1002 |
for (i = 0; i < len; i++) { |
|
4051
|
8015 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1002 |
7013 |
if (elem && SvNV(*elem) <= threshold) { |
|
4058
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4060
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
4063
|
0 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
0 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
4076
|
2008 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_eq(\\@array, $value) or none_eq(\\@array, $key, $value)"); |
|
|
0 |
2008 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_eq(\\@array, $value) or none_eq(\\@array, $key, $value)"); |
|
4079
|
2008 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2008 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4087
|
2008 |
0 |
if (items == 2) { |
|
4089
|
10032 |
1005 |
for (i = 0; i < len; i++) { |
|
4091
|
10032 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1003 |
9029 |
if (elem && SvNV(*elem) == target) { |
|
4098
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4100
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
4103
|
0 |
0 |
if (val && SvNV(*val) == target) { |
|
|
0 |
0 |
if (val && SvNV(*val) == target) { |
|
4116
|
2005 |
0 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_ne(\\@array, $value) or none_ne(\\@array, $key, $value)"); |
|
|
0 |
2005 |
if (items < 2 || items > 3) croak("Usage: Func::Util::none_ne(\\@array, $value) or none_ne(\\@array, $key, $value)"); |
|
4119
|
2005 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2005 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4127
|
2005 |
0 |
if (items == 2) { |
|
4129
|
5012 |
1003 |
for (i = 0; i < len; i++) { |
|
4131
|
5012 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1002 |
4010 |
if (elem && SvNV(*elem) != target) { |
|
4138
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4140
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
|
0 |
0 |
if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) { |
|
4143
|
0 |
0 |
if (val && SvNV(*val) != target) { |
|
|
0 |
0 |
if (val && SvNV(*val) != target) { |
|
4156
|
0 |
3012 |
if (items != 2) croak("Usage: Func::Util::firstr(\\&block, \\@array)"); |
|
4161
|
3012 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
3012 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4164
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4173
|
0 |
3012 |
if (len == 0) { |
|
4178
|
3012 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4183
|
0 |
3012 |
PUSH_MULTICALL(block_cv); |
|
4185
|
10045 |
1000 |
for (i = 0; i < len; i++) { |
|
4187
|
0 |
10045 |
if (!elem) continue; |
|
4194
|
2012 |
8033 |
if (SvTRUE(*PL_stack_sp)) { |
|
4195
|
2012 |
0 |
POP_MULTICALL; |
|
4201
|
1000 |
0 |
POP_MULTICALL; |
|
4207
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4209
|
0 |
0 |
if (!elem) continue; |
|
4214
|
0 |
0 |
PUSHMARK(SP); |
|
4217
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4229
|
0 |
2014 |
if (items != 2) croak("Usage: Func::Util::final(\\&block, \\@array)"); |
|
4234
|
2014 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
2014 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4237
|
2014 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2014 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4246
|
2 |
2012 |
if (len == 0) { |
|
4251
|
2012 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4256
|
0 |
2012 |
PUSH_MULTICALL(block_cv); |
|
4259
|
8026 |
1003 |
for (i = len - 1; i >= 0; i--) { |
|
4261
|
0 |
8026 |
if (!elem) continue; |
|
4268
|
1009 |
7017 |
if (SvTRUE(*PL_stack_sp)) { |
|
4269
|
1009 |
0 |
POP_MULTICALL; |
|
4275
|
1003 |
0 |
POP_MULTICALL; |
|
4281
|
0 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
4283
|
0 |
0 |
if (!elem) continue; |
|
4288
|
0 |
0 |
PUSHMARK(SP); |
|
4291
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4303
|
0 |
13118 |
if (items < 1) croak("Usage: Func::Util::first(\\&block, @list)"); |
|
4306
|
13118 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13118 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4316
|
2 |
13116 |
if (items <= 1) { |
|
4322
|
13116 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4327
|
0 |
13116 |
PUSH_MULTICALL(block_cv); |
|
4329
|
33336 |
4 |
for (index = 1; index < items; index++) { |
|
4335
|
13112 |
20224 |
if (SvTRUE(*PL_stack_sp)) { |
|
4336
|
13112 |
0 |
POP_MULTICALL; |
|
4342
|
4 |
0 |
POP_MULTICALL; |
|
4348
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4352
|
0 |
0 |
PUSHMARK(SP); |
|
4355
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4367
|
0 |
13126 |
if (items < 1) croak("Usage: Func::Util::any(\\&block, @list)"); |
|
4370
|
13126 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13126 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4379
|
2 |
13124 |
if (items <= 1) { |
|
4384
|
13124 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4389
|
0 |
13124 |
PUSH_MULTICALL(block_cv); |
|
4391
|
33341 |
4 |
for (index = 1; index < items; index++) { |
|
4397
|
13120 |
20221 |
if (SvTRUE(*PL_stack_sp)) { |
|
4398
|
13120 |
0 |
POP_MULTICALL; |
|
4403
|
4 |
0 |
POP_MULTICALL; |
|
4408
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4412
|
0 |
0 |
PUSHMARK(SP); |
|
4415
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4426
|
0 |
13116 |
if (items < 1) croak("Usage: Func::Util::all(\\&block, @list)"); |
|
4429
|
13116 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13116 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4438
|
2 |
13114 |
if (items <= 1) { |
|
4443
|
13114 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4448
|
0 |
13114 |
PUSH_MULTICALL(block_cv); |
|
4450
|
53537 |
13108 |
for (index = 1; index < items; index++) { |
|
4456
|
6 |
53531 |
if (!SvTRUE(*PL_stack_sp)) { |
|
4457
|
6 |
0 |
POP_MULTICALL; |
|
4462
|
13108 |
0 |
POP_MULTICALL; |
|
4467
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4471
|
0 |
0 |
PUSHMARK(SP); |
|
4474
|
0 |
0 |
if (!SvTRUE(*PL_stack_sp)) { |
|
4485
|
0 |
13114 |
if (items < 1) croak("Usage: Func::Util::none(\\&block, @list)"); |
|
4488
|
13114 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13114 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4497
|
2 |
13112 |
if (items <= 1) { |
|
4502
|
13112 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4507
|
0 |
13112 |
PUSH_MULTICALL(block_cv); |
|
4509
|
53532 |
10106 |
for (index = 1; index < items; index++) { |
|
4515
|
3006 |
50526 |
if (SvTRUE(*PL_stack_sp)) { |
|
4516
|
3006 |
0 |
POP_MULTICALL; |
|
4521
|
10106 |
0 |
POP_MULTICALL; |
|
4526
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4530
|
0 |
0 |
PUSHMARK(SP); |
|
4533
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4553
|
0 |
6 |
if (items < 1) croak("Usage: Func::Util::first_inline(\\&block, @list)"); |
|
4556
|
6 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
6 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4562
|
1 |
5 |
if (items == 1) { |
|
4567
|
0 |
5 |
if (CvISXSUB(the_cv)) { |
|
4579
|
0 |
5 |
PUSH_MULTICALL(the_cv); |
|
4584
|
24 |
1 |
for (i = 0; i < num_args; i++) { |
|
4591
|
4 |
20 |
if (SvTRUE(*PL_stack_sp)) { |
|
4593
|
4 |
0 |
POP_MULTICALL; |
|
4602
|
1 |
0 |
POP_MULTICALL; |
|
4616
|
0 |
17123 |
if (items != 1) croak("Usage: Func::Util::is_ref($value)"); |
|
4617
|
14115 |
3008 |
ST(0) = SvROK(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4623
|
0 |
17132 |
if (items != 1) croak("Usage: Func::Util::is_array($value)"); |
|
4625
|
12128 |
5004 |
ST(0) = (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) ? &PL_sv_yes : &PL_sv_no; |
|
|
12121 |
7 |
ST(0) = (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) ? &PL_sv_yes : &PL_sv_no; |
|
4631
|
0 |
17131 |
if (items != 1) croak("Usage: Func::Util::is_hash($value)"); |
|
4633
|
14127 |
3004 |
ST(0) = (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) ? &PL_sv_yes : &PL_sv_no; |
|
|
12120 |
2007 |
ST(0) = (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) ? &PL_sv_yes : &PL_sv_no; |
|
4639
|
0 |
17117 |
if (items != 1) croak("Usage: Func::Util::is_code($value)"); |
|
4641
|
14113 |
3004 |
ST(0) = (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) ? &PL_sv_yes : &PL_sv_no; |
|
|
12108 |
2005 |
ST(0) = (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) ? &PL_sv_yes : &PL_sv_no; |
|
4647
|
0 |
17118 |
if (items != 1) croak("Usage: Func::Util::is_defined($value)"); |
|
4648
|
14113 |
3005 |
ST(0) = SvOK(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4658
|
0 |
12016 |
if (items != 1) croak("Usage: Func::Util::is_empty($value)"); |
|
4660
|
2002 |
10014 |
if (!SvOK(sv)) { |
|
4665
|
4002 |
6012 |
ST(0) = len == 0 ? &PL_sv_yes : &PL_sv_no; |
|
4672
|
0 |
19124 |
if (items != 2) croak("Usage: Func::Util::starts_with($string, $prefix)"); |
|
4677
|
18122 |
1002 |
if (!SvOK(str_sv) || !SvOK(prefix_sv)) { |
|
|
1 |
18121 |
if (!SvOK(str_sv) || !SvOK(prefix_sv)) { |
|
4686
|
3002 |
15119 |
if (prefix_len > str_len) { |
|
4688
|
1002 |
14117 |
} else if (prefix_len == 0) { |
|
4691
|
12113 |
2004 |
ST(0) = memcmp(str, prefix, prefix_len) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
4698
|
0 |
19122 |
if (items != 2) croak("Usage: Func::Util::ends_with($string, $suffix)"); |
|
4703
|
18120 |
1002 |
if (!SvOK(str_sv) || !SvOK(suffix_sv)) { |
|
|
1 |
18119 |
if (!SvOK(str_sv) || !SvOK(suffix_sv)) { |
|
4712
|
3002 |
15117 |
if (suffix_len > str_len) { |
|
4714
|
1002 |
14115 |
} else if (suffix_len == 0) { |
|
4718
|
12111 |
2004 |
ST(0) = memcmp(str_end, suffix, suffix_len) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
4726
|
0 |
2000 |
if (items != 2) croak("Usage: Func::Util::count($string, $substring)"); |
|
4731
|
2000 |
0 |
if (!SvOK(str_sv) || !SvOK(needle_sv)) { |
|
|
0 |
2000 |
if (!SvOK(str_sv) || !SvOK(needle_sv)) { |
|
4740
|
2000 |
0 |
if (needle_len == 0 || needle_len > str_len) { |
|
|
2000 |
0 |
if (needle_len == 0 || needle_len > str_len) { |
|
4750
|
0 |
0 |
while (remaining >= needle_len) { |
|
4752
|
0 |
0 |
if (!found) break; |
|
4766
|
0 |
5026 |
if (items != 3) croak("Usage: Func::Util::replace_all($string, $old, $new)"); |
|
4773
|
0 |
5026 |
if (!SvOK(str_sv)) { |
|
4784
|
5025 |
1 |
if (old_len == 0 || old_len > str_len) { |
|
|
1001 |
4024 |
if (old_len == 0 || old_len > str_len) { |
|
4795
|
9052 |
2009 |
while (remaining >= old_len) { |
|
4797
|
2015 |
7037 |
if (!found) break; |
|
4803
|
1002 |
3022 |
if (count == 0) { |
|
4820
|
8050 |
2009 |
while (remaining >= old_len) { |
|
4822
|
1013 |
7037 |
if (!found) break; |
|
4826
|
2025 |
5012 |
if (before_len > 0) { |
|
4832
|
5035 |
2002 |
if (new_len > 0) { |
|
4842
|
1016 |
2006 |
if (remaining > 0) { |
|
4857
|
0 |
0 |
if (items != 2) croak("Usage: Func::Util::before($string, $delimiter)"); |
|
4862
|
0 |
0 |
if (!SvOK(str_sv)) { |
|
4871
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
4877
|
0 |
0 |
if (found) { |
|
4888
|
0 |
0 |
if (items != 2) croak("Usage: Func::Util::after($string, $delimiter)"); |
|
4893
|
0 |
0 |
if (!SvOK(str_sv)) { |
|
4902
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
4908
|
0 |
0 |
if (found) { |
|
4923
|
0 |
24129 |
if (items != 1) croak("Usage: Func::Util::is_true($value)"); |
|
4924
|
16123 |
8006 |
ST(0) = SvTRUE(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4930
|
0 |
22118 |
if (items != 1) croak("Usage: Func::Util::is_false($value)"); |
|
4931
|
4004 |
18114 |
ST(0) = SvTRUE(ST(0)) ? &PL_sv_no : &PL_sv_yes; |
|
4937
|
0 |
30119 |
if (items != 1) croak("Usage: Func::Util::bool($value)"); |
|
4938
|
21115 |
9004 |
ST(0) = SvTRUE(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4948
|
0 |
19155 |
if (items != 1) croak("Usage: Func::Util::is_num($value)"); |
|
4950
|
4025 |
15130 |
ST(0) = (SvNIOK(sv) || looks_like_number(sv)) ? &PL_sv_yes : &PL_sv_no; |
|
|
10 |
4015 |
ST(0) = (SvNIOK(sv) || looks_like_number(sv)) ? &PL_sv_yes : &PL_sv_no; |
|
4956
|
0 |
17120 |
if (items != 1) croak("Usage: Func::Util::is_int($value)"); |
|
4958
|
14106 |
3014 |
if (SvIOK(sv)) { |
|
4960
|
3009 |
5 |
} else if (SvNOK(sv)) { |
|
4962
|
1003 |
2006 |
ST(0) = (nv == (NV)(IV)nv) ? &PL_sv_yes : &PL_sv_no; |
|
4963
|
2 |
3 |
} else if (looks_like_number(sv)) { |
|
4968
|
4 |
2 |
for (i = 0; i < len; i++) { |
|
4969
|
4 |
0 |
if (pv[i] == '.' || pv[i] == 'e' || pv[i] == 'E') { |
|
|
4 |
0 |
if (pv[i] == '.' || pv[i] == 'e' || pv[i] == 'E') { |
|
|
0 |
4 |
if (pv[i] == '.' || pv[i] == 'e' || pv[i] == 'E') { |
|
4974
|
0 |
2 |
if (has_dot) { |
|
4976
|
0 |
0 |
ST(0) = (nv == (NV)(IV)nv) ? &PL_sv_yes : &PL_sv_no; |
|
4988
|
0 |
6011 |
if (items != 1) croak("Usage: Func::Util::is_blessed($value)"); |
|
4989
|
2005 |
4006 |
ST(0) = sv_isobject(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4995
|
0 |
4009 |
if (items != 1) croak("Usage: Func::Util::is_scalar_ref($value)"); |
|
4997
|
4006 |
3 |
if (SvROK(sv)) { |
|
5000
|
2003 |
2003 |
ST(0) = (type < SVt_PVAV) ? &PL_sv_yes : &PL_sv_no; |
|
5009
|
0 |
6009 |
if (items != 1) croak("Usage: Func::Util::is_regex($value)"); |
|
5010
|
2004 |
4005 |
ST(0) = SvRXOK(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
5016
|
0 |
6008 |
if (items != 1) croak("Usage: Func::Util::is_glob($value)"); |
|
5017
|
2003 |
4005 |
ST(0) = (SvTYPE(ST(0)) == SVt_PVGV) ? &PL_sv_yes : &PL_sv_no; |
|
5023
|
0 |
8017 |
if (items != 1) croak("Usage: Func::Util::is_string($value)"); |
|
5025
|
6016 |
2001 |
ST(0) = (SvOK(sv) && !SvROK(sv)) ? &PL_sv_yes : &PL_sv_no; |
|
|
4010 |
2006 |
ST(0) = (SvOK(sv) && !SvROK(sv)) ? &PL_sv_yes : &PL_sv_no; |
|
5035
|
0 |
15123 |
if (items != 1) croak("Usage: Func::Util::is_positive($value)"); |
|
5037
|
2 |
15121 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
2 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
5039
|
13111 |
2010 |
ST(0) = (nv > 0) ? &PL_sv_yes : &PL_sv_no; |
|
5048
|
0 |
13122 |
if (items != 1) croak("Usage: Func::Util::is_negative($value)"); |
|
5050
|
2 |
13120 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
2 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
5052
|
13111 |
9 |
ST(0) = (nv < 0) ? &PL_sv_yes : &PL_sv_no; |
|
5061
|
0 |
13123 |
if (items != 1) croak("Usage: Func::Util::is_zero($value)"); |
|
5063
|
4 |
13119 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
2 |
2 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
5065
|
13110 |
11 |
ST(0) = (nv == 0) ? &PL_sv_yes : &PL_sv_no; |
|
5078
|
0 |
18156 |
if (items != 1) croak("Usage: Func::Util::is_even($value)"); |
|
5080
|
18144 |
12 |
if (SvIOK(sv)) { |
|
5081
|
15123 |
3021 |
ST(0) = (SvIVX(sv) & 1) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5082
|
5 |
7 |
} else if (SvNIOK(sv)) { |
|
5084
|
3 |
2 |
if (nv == (NV)(IV)nv) { |
|
5085
|
2 |
1 |
ST(0) = ((IV)nv & 1) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5089
|
2 |
5 |
} else if (looks_like_number(sv)) { |
|
5090
|
2 |
0 |
ST(0) = (SvIV(sv) & 1) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5099
|
0 |
18155 |
if (items != 1) croak("Usage: Func::Util::is_odd($value)"); |
|
5101
|
18144 |
11 |
if (SvIOK(sv)) { |
|
5102
|
14124 |
4020 |
ST(0) = (SvIVX(sv) & 1) == 1 ? &PL_sv_yes : &PL_sv_no; |
|
5103
|
5 |
6 |
} else if (SvNIOK(sv)) { |
|
5105
|
3 |
2 |
if (nv == (NV)(IV)nv) { |
|
5106
|
2 |
1 |
ST(0) = ((IV)nv & 1) == 1 ? &PL_sv_yes : &PL_sv_no; |
|
5110
|
2 |
4 |
} else if (looks_like_number(sv)) { |
|
5111
|
2 |
0 |
ST(0) = (SvIV(sv) & 1) == 1 ? &PL_sv_yes : &PL_sv_no; |
|
5120
|
0 |
15070 |
if (items != 3) croak("Usage: Func::Util::is_between($value, $min, $max)"); |
|
5125
|
5 |
15065 |
if (SvNIOK(val_sv) || looks_like_number(val_sv)) { |
|
|
1 |
4 |
if (SvNIOK(val_sv) || looks_like_number(val_sv)) { |
|
5129
|
12054 |
3012 |
ST(0) = (val >= min && val <= max) ? &PL_sv_yes : &PL_sv_no; |
|
|
9043 |
3011 |
ST(0) = (val >= min && val <= max) ? &PL_sv_yes : &PL_sv_no; |
|
5142
|
0 |
4008 |
if (items != 1) croak("Usage: Func::Util::is_empty_array($arrayref)"); |
|
5144
|
4005 |
3 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
4004 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5146
|
0 |
4004 |
ST(0) = AvFILL(av) < 0 ? &PL_sv_yes : &PL_sv_no; |
|
|
2001 |
2003 |
ST(0) = AvFILL(av) < 0 ? &PL_sv_yes : &PL_sv_no; |
|
5155
|
0 |
5008 |
if (items != 1) croak("Usage: Func::Util::is_empty_hash($hashref)"); |
|
5157
|
5005 |
3 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
|
5004 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
5159
|
0 |
5004 |
ST(0) = HvKEYS(hv) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
|
3001 |
2003 |
ST(0) = HvKEYS(hv) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5168
|
0 |
14126 |
if (items != 1) croak("Usage: Func::Util::array_len($arrayref)"); |
|
5170
|
13124 |
1002 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
13123 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5172
|
0 |
13123 |
ST(0) = sv_2mortal(newSViv(AvFILL(av) + 1)); |
|
5181
|
0 |
4018 |
if (items != 1) croak("Usage: Func::Util::hash_size($hashref)"); |
|
5183
|
3016 |
1002 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
|
3015 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
5185
|
0 |
3015 |
ST(0) = sv_2mortal(newSViv(HvKEYS(hv))); |
|
5194
|
0 |
13114 |
if (items != 1) croak("Usage: Func::Util::array_first($arrayref)"); |
|
5196
|
13112 |
2 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
13111 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5198
|
0 |
13111 |
if (AvFILL(av) >= 0) { |
|
|
12110 |
1001 |
if (AvFILL(av) >= 0) { |
|
5200
|
12110 |
0 |
ST(0) = elem ? *elem : &PL_sv_undef; |
|
5212
|
0 |
13113 |
if (items != 1) croak("Usage: Func::Util::array_last($arrayref)"); |
|
5214
|
13111 |
2 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
13110 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5216
|
0 |
13110 |
IV last_idx = AvFILL(av); |
|
5217
|
12109 |
1001 |
if (last_idx >= 0) { |
|
5219
|
12109 |
0 |
ST(0) = elem ? *elem : &PL_sv_undef; |
|
5235
|
0 |
20141 |
if (items != 1) croak("Usage: Func::Util::trim($string)"); |
|
5238
|
1001 |
19140 |
if (!SvOK(sv)) { |
|
5249
|
46406 |
4004 |
while (start < end && isSPACE(*start)) { |
|
|
31270 |
15136 |
while (start < end && isSPACE(*start)) { |
|
5254
|
43397 |
4004 |
while (end > start && isSPACE(*(end - 1))) { |
|
|
28261 |
15136 |
while (end > start && isSPACE(*(end - 1))) { |
|
5264
|
0 |
4013 |
if (items != 1) croak("Usage: Func::Util::ltrim($string)"); |
|
5267
|
1 |
4012 |
if (!SvOK(sv)) { |
|
5277
|
8029 |
2 |
while (start < end && isSPACE(*start)) { |
|
|
4019 |
4010 |
while (start < end && isSPACE(*start)) { |
|
5287
|
0 |
4013 |
if (items != 1) croak("Usage: Func::Util::rtrim($string)"); |
|
5290
|
1 |
4012 |
if (!SvOK(sv)) { |
|
5299
|
8024 |
2 |
while (end > str && isSPACE(*(end - 1))) { |
|
|
4014 |
4010 |
while (end > str && isSPACE(*(end - 1))) { |
|
5313
|
0 |
10028 |
if (items != 2) croak("Usage: Func::Util::maybe($value, $then)"); |
|
5316
|
8023 |
2005 |
if (SvOK(val)) { |
|
5330
|
0 |
21131 |
if (items != 1) croak("Usage: Func::Util::sign($number)"); |
|
5333
|
5 |
21126 |
if (!SvNIOK(sv) && !looks_like_number(sv)) { |
|
|
2 |
3 |
if (!SvNIOK(sv) && !looks_like_number(sv)) { |
|
5339
|
4011 |
17118 |
if (nv > 0) { |
|
5341
|
14113 |
3005 |
} else if (nv < 0) { |
|
5351
|
0 |
15116 |
if (items != 2) croak("Usage: Func::Util::min2($a, $b)"); |
|
5356
|
15112 |
4 |
ST(0) = a <= b ? ST(0) : ST(1); |
|
5362
|
0 |
15116 |
if (items != 2) croak("Usage: Func::Util::max2($a, $b)"); |
|
5367
|
1007 |
14109 |
ST(0) = a >= b ? ST(0) : ST(1); |
|
5379
|
0 |
11130 |
if (items != 2) croak("Usage: Func::Util::any_cb(\\@list, $callback_name)"); |
|
5382
|
11128 |
2 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
1 |
11127 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5391
|
2 |
11125 |
if (!cb) { |
|
5394
|
1000 |
10125 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1000 |
if (!cb->predicate && !cb->perl_callback) { |
|
5401
|
10125 |
1000 |
if (cb->predicate) { |
|
5403
|
35172 |
2 |
for (i = 0; i < len; i++) { |
|
5405
|
35172 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
10123 |
25049 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5409
|
1000 |
0 |
} else if (cb->perl_callback) { |
|
5411
|
7000 |
0 |
for (i = 0; i < len; i++) { |
|
5413
|
0 |
7000 |
if (!svp) continue; |
|
5424
|
0 |
7000 |
PUSHMARK(SP); |
|
5425
|
0 |
7000 |
XPUSHs(*svp); |
|
5431
|
7000 |
0 |
if (count > 0) { |
|
5437
|
7000 |
0 |
FREETMPS; |
|
5441
|
1000 |
6000 |
if (matches) { |
|
5453
|
0 |
3128 |
if (items != 2) croak("Usage: Func::Util::all_cb(\\@list, $callback_name)"); |
|
5456
|
3128 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
3128 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5465
|
1 |
3127 |
if (!cb) { |
|
5468
|
0 |
3127 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
0 |
if (!cb->predicate && !cb->perl_callback) { |
|
5476
|
5 |
3122 |
if (len == 0) { |
|
5480
|
3122 |
0 |
if (cb->predicate) { |
|
5481
|
1019114 |
2114 |
for (i = 0; i < len; i++) { |
|
5483
|
1019114 |
0 |
if (!svp || !cb->predicate(aTHX_ *svp)) { |
|
|
1008 |
1018106 |
if (!svp || !cb->predicate(aTHX_ *svp)) { |
|
5487
|
0 |
0 |
} else if (cb->perl_callback) { |
|
5488
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
5490
|
0 |
0 |
if (!svp) { XSRETURN_NO; } |
|
5497
|
0 |
0 |
PUSHMARK(SP); |
|
5498
|
0 |
0 |
XPUSHs(*svp); |
|
5502
|
0 |
0 |
if (count > 0) { |
|
5507
|
0 |
0 |
FREETMPS; LEAVE; |
|
5509
|
0 |
0 |
if (!matches) { |
|
5521
|
0 |
2012 |
if (items != 2) croak("Usage: Func::Util::none_cb(\\@list, $callback_name)"); |
|
5524
|
2012 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
2012 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5533
|
1 |
2011 |
if (!cb) { |
|
5536
|
0 |
2011 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
0 |
if (!cb->predicate && !cb->perl_callback) { |
|
5543
|
2011 |
0 |
if (cb->predicate) { |
|
5544
|
13021 |
1006 |
for (i = 0; i < len; i++) { |
|
5546
|
13021 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
1005 |
12016 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5550
|
0 |
0 |
} else if (cb->perl_callback) { |
|
5551
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
5553
|
0 |
0 |
if (!svp) continue; |
|
5560
|
0 |
0 |
PUSHMARK(SP); |
|
5561
|
0 |
0 |
XPUSHs(*svp); |
|
5565
|
0 |
0 |
if (count > 0) { |
|
5570
|
0 |
0 |
FREETMPS; LEAVE; |
|
5572
|
0 |
0 |
if (matches) { |
|
5584
|
0 |
5043 |
if (items != 2) croak("Usage: Func::Util::first_cb(\\@list, $callback_name)"); |
|
5587
|
5043 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
5043 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5596
|
1 |
5042 |
if (!cb) { |
|
5599
|
1010 |
4032 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1010 |
if (!cb->predicate && !cb->perl_callback) { |
|
5606
|
4032 |
1010 |
if (cb->predicate) { |
|
5607
|
10080 |
2 |
for (i = 0; i < len; i++) { |
|
5609
|
10080 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
4030 |
6050 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5614
|
1010 |
0 |
} else if (cb->perl_callback) { |
|
5615
|
7012 |
2 |
for (i = 0; i < len; i++) { |
|
5617
|
0 |
7012 |
if (!svp) continue; |
|
5624
|
0 |
7012 |
PUSHMARK(SP); |
|
5625
|
0 |
7012 |
XPUSHs(*svp); |
|
5629
|
7012 |
0 |
if (count > 0) { |
|
5634
|
7012 |
0 |
FREETMPS; LEAVE; |
|
5636
|
1008 |
6004 |
if (matches) { |
|
5649
|
0 |
3037 |
if (items != 2) croak("Usage: Func::Util::grep_cb(\\@list, $callback_name)"); |
|
5652
|
3037 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
3037 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5661
|
1 |
3036 |
if (!cb) { |
|
5664
|
12 |
3024 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
12 |
if (!cb->predicate && !cb->perl_callback) { |
|
5676
|
3024 |
12 |
if (cb->predicate) { |
|
5677
|
27151 |
3024 |
for (i = 0; i < len; i++) { |
|
5679
|
27151 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
13075 |
14076 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5684
|
12 |
0 |
} else if (cb->perl_callback) { |
|
5685
|
76 |
12 |
for (i = 0; i < len; i++) { |
|
5687
|
0 |
76 |
if (!svp) continue; |
|
5695
|
0 |
76 |
PUSHMARK(SP); |
|
5696
|
0 |
76 |
XPUSHs(elem); |
|
5700
|
76 |
0 |
if (call_count > 0) { |
|
5705
|
76 |
0 |
FREETMPS; LEAVE; |
|
5707
|
39 |
37 |
if (matches) { |
|
5716
|
13114 |
3036 |
for (i = 0; i < count; i++) { |
|
5718
|
13114 |
0 |
if (svp) { |
|
5719
|
0 |
13114 |
XPUSHs(sv_2mortal(SvREFCNT_inc(*svp))); |
|
5730
|
0 |
6165 |
if (items != 2) croak("Usage: Func::Util::count_cb(\\@list, $callback_name)"); |
|
5733
|
6165 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
6165 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5742
|
1 |
6164 |
if (!cb) { |
|
5745
|
1004 |
5160 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1004 |
if (!cb->predicate && !cb->perl_callback) { |
|
5753
|
5160 |
1004 |
if (cb->predicate) { |
|
5754
|
1041389 |
5160 |
for (i = 0; i < len; i++) { |
|
5756
|
1041389 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
1022177 |
19212 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5760
|
1004 |
0 |
} else if (cb->perl_callback) { |
|
5761
|
9029 |
1004 |
for (i = 0; i < len; i++) { |
|
5763
|
0 |
9029 |
if (!svp) continue; |
|
5770
|
0 |
9029 |
PUSHMARK(SP); |
|
5771
|
0 |
9029 |
XPUSHs(*svp); |
|
5775
|
9029 |
0 |
if (call_count > 0) { |
|
5780
|
9029 |
0 |
FREETMPS; LEAVE; |
|
5782
|
3010 |
6019 |
if (matches) { |
|
5794
|
0 |
2013 |
if (items != 2) croak("Usage: Func::Util::partition_cb(\\@list, $callback_name)"); |
|
5797
|
2012 |
1 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
2012 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5806
|
1 |
2011 |
if (!cb) { |
|
5809
|
2 |
2009 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
2 |
if (!cb->predicate && !cb->perl_callback) { |
|
5820
|
2009 |
2 |
if (cb->predicate) { |
|
5821
|
18040 |
2009 |
for (i = 0; i < len; i++) { |
|
5823
|
0 |
18040 |
if (!svp) continue; |
|
5824
|
11020 |
7020 |
if (cb->predicate(aTHX_ *svp)) { |
|
5830
|
2 |
0 |
} else if (cb->perl_callback) { |
|
5831
|
9 |
2 |
for (i = 0; i < len; i++) { |
|
5833
|
0 |
9 |
if (!svp) continue; |
|
5843
|
0 |
9 |
PUSHMARK(SP); |
|
5844
|
0 |
9 |
XPUSHs(*svp); |
|
5850
|
9 |
0 |
if (call_count > 0) { |
|
5856
|
9 |
0 |
FREETMPS; |
|
5859
|
4 |
5 |
if (matches) { |
|
5876
|
0 |
3019 |
if (items != 2) croak("Usage: Func::Util::final_cb(\\@list, $callback_name)"); |
|
5879
|
3018 |
1 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
3018 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5888
|
1 |
3017 |
if (!cb) { |
|
5891
|
1 |
3016 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1 |
if (!cb->predicate && !cb->perl_callback) { |
|
5898
|
3016 |
1 |
if (cb->predicate) { |
|
5900
|
10033 |
6 |
for (i = len - 1; i >= 0; i--) { |
|
5902
|
10033 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
3010 |
7023 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5907
|
1 |
0 |
} else if (cb->perl_callback) { |
|
5909
|
1 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
5911
|
0 |
1 |
if (!svp) continue; |
|
5918
|
0 |
1 |
PUSHMARK(SP); |
|
5919
|
0 |
1 |
XPUSHs(*svp); |
|
5923
|
1 |
0 |
if (count > 0) { |
|
5928
|
1 |
0 |
FREETMPS; LEAVE; |
|
5930
|
1 |
0 |
if (matches) { |
|
5943
|
0 |
20 |
if (items != 2) croak("Usage: Func::Util::register_callback($name, \\&coderef)"); |
|
5949
|
20 |
0 |
if (!SvROK(coderef) || SvTYPE(SvRV(coderef)) != SVt_PVCV) { |
|
|
0 |
20 |
if (!SvROK(coderef) || SvTYPE(SvRV(coderef)) != SVt_PVCV) { |
|
5959
|
3 |
17 |
if (get_registered_callback(aTHX_ name)) { |
|
5980
|
0 |
6018 |
if (items != 1) croak("Usage: Func::Util::has_callback($name)"); |
|
5985
|
4014 |
2004 |
if (has_callback(aTHX_ name)) { |
|
6032
|
0 |
15 |
if (items != 2) |
|
6040
|
14 |
1 |
if (!SvROK(cv_sv) || SvTYPE(SvRV(cv_sv)) != SVt_PVCV) |
|
|
2 |
12 |
if (!SvROK(cv_sv) || SvTYPE(SvRV(cv_sv)) != SVt_PVCV) |
|
6044
|
1 |
11 |
if (hv_exists(g_export_hash, name, name_len)) |
|
6062
|
0 |
17 |
if (items != 1) |
|
6068
|
14 |
3 |
if (hv_exists(g_export_hash, name, name_len)) { |
|
6084
|
354 |
3 |
while ((entry = hv_iternext(g_export_hash))) { |
|
6103
|
0 |
7 |
if (!g_export_hash) { |
|
6108
|
0 |
7 |
if (hv_exists(g_export_hash, name, name_len)) { |
|
6280
|
85 |
0 |
return HvNAME((HV*)CopSTASH(PL_curcop)); |
|
|
85 |
0 |
return HvNAME((HV*)CopSTASH(PL_curcop)); |
|
|
0 |
85 |
return HvNAME((HV*)CopSTASH(PL_curcop)); |
|
|
0 |
0 |
return HvNAME((HV*)CopSTASH(PL_curcop)); |
|
|
85 |
0 |
return HvNAME((HV*)CopSTASH(PL_curcop)); |
|
|
0 |
85 |
return HvNAME((HV*)CopSTASH(PL_curcop)); |
|
6291
|
456 |
83 |
for (i = 1; i < items; i++) { |
|
6295
|
454 |
2 |
if (!entry_sv || !*entry_sv) { |
|
|
0 |
454 |
if (!entry_sv || !*entry_sv) { |
|
6302
|
446 |
8 |
if (entry->xs_func) { |
|
6312
|
8 |
0 |
} else if (entry->perl_cv) { |
|
6315
|
8 |
0 |
if (gv) { |
|
6512
|
0 |
53 |
Newxz(g_memos, g_memo_size, MemoizedFunc); |
|
6516
|
0 |
53 |
Newxz(g_lazies, g_lazy_size, LazyValue); |
|
6520
|
0 |
53 |
Newxz(g_always_values, g_always_size, SV*); |
|
6524
|
0 |
53 |
Newxz(g_onces, g_once_size, OnceFunc); |
|
6528
|
0 |
53 |
Newxz(g_partials, g_partial_size, PartialFunc); |