| 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)) { |
|
1578
|
21 |
0 |
if (!OpHAS_SIBLING(pushop)) { |
|
1583
|
21 |
0 |
arg1 = OpSIBLING(pushop); /* string */ |
|
1584
|
0 |
21 |
if (!arg1) return entersubop; |
|
1586
|
21 |
0 |
arg2 = OpSIBLING(arg1); /* prefix/suffix */ |
|
1587
|
0 |
21 |
if (!arg2) return entersubop; |
|
1589
|
21 |
0 |
cvop = OpSIBLING(arg2); /* cv op (should be last) */ |
|
1590
|
21 |
0 |
if (!cvop || OpHAS_SIBLING(cvop)) return entersubop; |
|
|
0 |
21 |
if (!cvop || OpHAS_SIBLING(cvop)) return entersubop; |
|
1593
|
1 |
20 |
if (op_is_dollar_underscore(aTHX_ arg1)) { |
|
1762
|
0 |
213 |
if (items != 1) croak("Usage: Func::Util::memo(\\&func)"); |
|
1765
|
213 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
213 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
1802
|
421 |
428 |
if (cached && SvOK(*cached)) { |
|
|
421 |
0 |
if (cached && SvOK(*cached)) { |
|
1805
|
0 |
421 |
if (SvROK(*cached) && SvTYPE(SvRV(*cached)) == SVt_PVAV) { |
|
|
0 |
0 |
if (SvROK(*cached) && SvTYPE(SvRV(*cached)) == SVt_PVAV) { |
|
1809
|
0 |
0 |
EXTEND(SP, len); |
|
|
0 |
0 |
EXTEND(SP, len); |
|
1810
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
1812
|
0 |
0 |
ST(i) = elem ? *elem : &PL_sv_undef; |
|
1825
|
0 |
428 |
PUSHMARK(SP); |
|
1828
|
428 |
0 |
EXTEND(SP, items); |
|
|
0 |
428 |
EXTEND(SP, items); |
|
1829
|
429 |
428 |
for (i = 0; i < items; i++) { |
|
1838
|
428 |
0 |
if (count == 1) { |
|
1842
|
428 |
0 |
FREETMPS; |
|
1847
|
0 |
0 |
} else if (count > 0) { |
|
1850
|
0 |
0 |
for (i = count - 1; i >= 0; i--) { |
|
1856
|
0 |
0 |
FREETMPS; |
|
1859
|
0 |
0 |
for (i = 0; i < count; i++) { |
|
1861
|
0 |
0 |
ST(i) = elem ? *elem : &PL_sv_undef; |
|
1867
|
0 |
0 |
FREETMPS; |
|
1880
|
0 |
1011 |
if (items < 2) croak("Usage: Func::Util::pipeline($value, \\&fn1, \\&fn2, ...)"); |
|
1885
|
3025 |
1011 |
for (i = 1; i < items; i++) { |
|
1887
|
3025 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
3025 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
1894
|
0 |
3025 |
PUSHMARK(SP); |
|
1895
|
0 |
3025 |
XPUSHs(value); |
|
1904
|
3024 |
1 |
FREETMPS; |
|
1917
|
0 |
1010 |
if (items < 1) croak("Usage: Func::Util::compose(\\&fn1, \\&fn2, ...)"); |
|
1922
|
3020 |
1010 |
for (i = 0; i < items; i++) { |
|
1924
|
3020 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
3020 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
1948
|
3022 |
1011 |
for (i = func_count - 1; i >= 0; i--) { |
|
1950
|
0 |
3022 |
if (!func_ptr) continue; |
|
1954
|
0 |
3022 |
PUSHMARK(SP); |
|
1956
|
1011 |
2011 |
if (i == func_count - 1) { |
|
1958
|
1011 |
0 |
EXTEND(SP, items); |
|
|
0 |
1011 |
EXTEND(SP, items); |
|
1959
|
1011 |
1011 |
for (j = 0; j < items; j++) { |
|
1963
|
0 |
2011 |
XPUSHs(value); |
|
1973
|
3021 |
1 |
FREETMPS; |
|
1976
|
2011 |
1011 |
if (value) SvREFCNT_dec(value); |
|
1980
|
1011 |
0 |
ST(0) = value ? sv_2mortal(value) : &PL_sv_undef; |
|
1990
|
0 |
1008 |
if (items != 1) croak("Usage: Func::Util::lazy(sub { ... })"); |
|
1993
|
1008 |
0 |
if (!SvROK(thunk) || SvTYPE(SvRV(thunk)) != SVt_PVCV) { |
|
|
0 |
1008 |
if (!SvROK(thunk) || SvTYPE(SvRV(thunk)) != SVt_PVCV) { |
|
2018
|
0 |
2018 |
if (items != 1) croak("Usage: Func::Util::force($lazy)"); |
|
2022
|
2014 |
4 |
if (!SvROK(lazy) || !sv_derived_from(lazy, "Func::Util::Lazy")) { |
|
|
1 |
2013 |
if (!SvROK(lazy) || !sv_derived_from(lazy, "Func::Util::Lazy")) { |
|
2028
|
2013 |
0 |
if (idx < 0 || idx >= g_lazy_count) { |
|
|
0 |
2013 |
if (idx < 0 || idx >= g_lazy_count) { |
|
2034
|
1005 |
1008 |
if (lv->forced) { |
|
2041
|
0 |
1008 |
PUSHMARK(SP); |
|
2050
|
1008 |
0 |
FREETMPS; |
|
2066
|
0 |
19124 |
if (items < 2) croak("Usage: Func::Util::dig($hash, @keys)"); |
|
2071
|
47354 |
13117 |
for (i = 1; i < items; i++) { |
|
2072
|
47353 |
1 |
if (!SvROK(current) || SvTYPE(SvRV(current)) != SVt_PVHV) { |
|
|
3000 |
44353 |
if (!SvROK(current) || SvTYPE(SvRV(current)) != SVt_PVHV) { |
|
2082
|
41349 |
3004 |
if (!val || !SvOK(*val)) { |
|
|
2 |
41347 |
if (!val || !SvOK(*val)) { |
|
2099
|
0 |
12105 |
if (items != 2) croak("Usage: Func::Util::tap(\\&block, $value)"); |
|
2104
|
12105 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
12105 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
2113
|
0 |
12105 |
PUSHMARK(SP); |
|
2114
|
0 |
12105 |
XPUSHs(value); |
|
2120
|
0 |
12105 |
FREETMPS; |
|
2134
|
0 |
18161 |
if (items != 3) croak("Usage: Func::Util::clamp($value, $min, $max)"); |
|
2140
|
3014 |
15147 |
if (value < min) { |
|
2142
|
3014 |
12133 |
} else if (value > max) { |
|
2158
|
0 |
16119 |
if (items != 1) croak("Usage: Func::Util::identity($value)"); |
|
2168
|
0 |
8 |
if (items != 1) croak("Usage: Func::Util::always($value)"); |
|
2201
|
0 |
2 |
XPUSHs(&PL_sv_undef); |
|
2247
|
10102 |
2003 |
if (GIMME_V == G_ARRAY) { |
|
2258
|
10102 |
2003 |
if (GIMME_V == G_ARRAY) { |
|
2289
|
0 |
1008 |
if (items != 1) croak("Usage: Func::Util::negate(\\&predicate)"); |
|
2292
|
1008 |
0 |
if (!SvROK(pred) || SvTYPE(SvRV(pred)) != SVt_PVCV) { |
|
|
0 |
1008 |
if (!SvROK(pred) || SvTYPE(SvRV(pred)) != SVt_PVCV) { |
|
2309
|
0 |
12113 |
PUSHMARK(SP); |
|
2312
|
12113 |
0 |
EXTEND(SP, items); |
|
|
0 |
12113 |
EXTEND(SP, items); |
|
2313
|
12113 |
12113 |
for (i = 0; i < items; i++) { |
|
2324
|
12113 |
0 |
FREETMPS; |
|
2327
|
1005 |
11108 |
ST(0) = val ? &PL_sv_no : &PL_sv_yes; |
|
2334
|
0 |
1005 |
if (items != 1) croak("Usage: Func::Util::once(\\&func)"); |
|
2337
|
1005 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
1005 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
2365
|
2010 |
1005 |
if (of->called) { |
|
2366
|
2010 |
0 |
ST(0) = of->result ? of->result : &PL_sv_undef; |
|
2372
|
0 |
1005 |
PUSHMARK(SP); |
|
2381
|
1005 |
0 |
FREETMPS; |
|
2395
|
0 |
1012 |
if (items < 1) croak("Usage: Func::Util::partial(\\&func, @bound_args)"); |
|
2398
|
1012 |
0 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
|
0 |
1012 |
if (!SvROK(func) || SvTYPE(SvRV(func)) != SVt_PVCV) { |
|
2411
|
1012 |
1012 |
for (i = 1; i < items; i++) { |
|
2435
|
0 |
2016 |
PUSHMARK(SP); |
|
2437
|
2016 |
0 |
EXTEND(SP, total); |
|
|
0 |
2016 |
EXTEND(SP, total); |
|
2441
|
2016 |
2016 |
for (i = 0; i < bound_count; i++) { |
|
2443
|
2016 |
0 |
PUSHs(elem ? *elem : &PL_sv_undef); |
|
2447
|
2015 |
2016 |
for (i = 0; i < items; i++) { |
|
2455
|
2016 |
0 |
SV *result = count > 0 ? POPs : &PL_sv_undef; |
|
2458
|
2016 |
0 |
FREETMPS; |
|
2473
|
0 |
12722 |
if (items < 1) croak("Usage: Func::Util::pick(\\%%hash, @keys)"); |
|
2476
|
12722 |
0 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
|
0 |
12722 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
2484
|
25844 |
12722 |
for (i = 1; i < items; i++) { |
|
2490
|
24239 |
1605 |
if (val && SvOK(*val)) { |
|
|
24238 |
1 |
if (val && SvOK(*val)) { |
|
2496
|
10100 |
2622 |
if (GIMME_V == G_ARRAY) { |
|
2498
|
0 |
10100 |
IV n = HvUSEDKEYS(dest); |
|
2500
|
10100 |
0 |
EXTEND(SP, n * 2); |
|
|
0 |
10100 |
EXTEND(SP, n * 2); |
|
2504
|
20200 |
10100 |
while ((he = hv_iternext(dest)) != NULL) { |
|
2506
|
0 |
20200 |
const char *key = HePV(he, klen); |
|
2523
|
0 |
2211 |
if (items != 2) croak("Usage: Func::Util::pluck(\\@array, $field)"); |
|
2526
|
2211 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2211 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2540
|
6625 |
2211 |
for (i = 0; i < len; i++) { |
|
2542
|
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) { |
|
2545
|
5422 |
1203 |
if (val && SvOK(*val)) { |
|
|
5422 |
0 |
if (val && SvOK(*val)) { |
|
2563
|
0 |
12710 |
if (items < 1) croak("Usage: Func::Util::omit(\\%%hash, @keys)"); |
|
2566
|
12710 |
0 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
|
0 |
12710 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
2576
|
15315 |
12710 |
for (i = 1; i < items; i++) { |
|
2586
|
41128 |
12710 |
while ((entry = hv_iternext(src)) != NULL) { |
|
2591
|
26219 |
14909 |
if (!hv_exists(exclude, key_pv, key_len)) { |
|
2593
|
26219 |
0 |
if (SvOK(val)) { |
|
2602
|
10100 |
2610 |
if (GIMME_V == G_ARRAY) { |
|
2604
|
0 |
10100 |
IV n = HvUSEDKEYS(dest); |
|
2606
|
10100 |
0 |
EXTEND(SP, n * 2); |
|
|
0 |
10100 |
EXTEND(SP, n * 2); |
|
2610
|
20200 |
10100 |
while ((he = hv_iternext(dest)) != NULL) { |
|
2612
|
0 |
20200 |
const char *key = HePV(he, klen); |
|
2630
|
1 |
2625 |
if (items == 0) { |
|
2634
|
1611 |
1014 |
if (items == 1) { |
|
2639
|
13 |
1001 |
if (items <= 8) { |
|
2642
|
64 |
13 |
for (i = 0; i < items; i++) { |
|
2645
|
62 |
2 |
const char *key_i = SvOK(elem) ? SvPV_const(elem, len_i) : "\x00UNDEF\x00"; |
|
2646
|
2 |
62 |
if (!SvOK(elem)) len_i = 7; |
|
2649
|
91 |
40 |
for (j = 0; j < out; j++) { |
|
2652
|
88 |
3 |
const char *key_j = SvOK(prev) ? SvPV_const(prev, len_j) : "\x00UNDEF\x00"; |
|
2653
|
3 |
88 |
if (!SvOK(prev)) len_j = 7; |
|
2655
|
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) { |
|
2660
|
40 |
24 |
if (!dup) ST(out++) = elem; |
|
2670
|
10010 |
1001 |
for (i = 0; i < items; i++) { |
|
2676
|
10010 |
0 |
key = SvOK(elem) ? SvPV_const(elem, len) : (len = 7, "\x00UNDEF\x00"); |
|
2678
|
10010 |
0 |
PERL_HASH(hash, key, len); |
|
2680
|
4004 |
6006 |
if (!hv_common(seen, NULL, key, len, 0, HV_FETCH_ISEXISTS, NULL, hash)) { |
|
2693
|
0 |
2210 |
if (items < 1) croak("Usage: Func::Util::partition(\\&block, @list)"); |
|
2696
|
2210 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
2210 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
2702
|
1 |
2209 |
if (list_len == 0) { |
|
2717
|
2209 |
0 |
SV *orig_defsv = DEFSV; |
|
2720
|
2243 |
2209 |
for (i = 1; i < items; i++) { |
|
2727
|
0 |
2243 |
PUSHMARK(SP); |
|
2728
|
0 |
2243 |
XPUSHs(elem); |
|
2737
|
2243 |
0 |
FREETMPS; |
|
2740
|
2222 |
21 |
if (matched) { |
|
2761
|
0 |
11507 |
if (items != 2) croak("Usage: Func::Util::defaults(\\%%hash, \\%%defaults)"); |
|
2766
|
11507 |
0 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
|
0 |
11507 |
if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV) { |
|
2769
|
11507 |
0 |
if (!SvROK(dref) || SvTYPE(SvRV(dref)) != SVt_PVHV) { |
|
|
0 |
11507 |
if (!SvROK(dref) || SvTYPE(SvRV(dref)) != SVt_PVHV) { |
|
2777
|
0 |
11507 |
IV src_keys = HvUSEDKEYS(src); |
|
2778
|
0 |
11507 |
IV def_keys = HvUSEDKEYS(def); |
|
2785
|
12507 |
11507 |
while ((entry = hv_iternext(src)) != NULL) { |
|
2787
|
0 |
12507 |
const char *key_pv = HePV(entry, key_len); |
|
2794
|
24411 |
11507 |
while ((entry = hv_iternext(def)) != NULL) { |
|
2796
|
0 |
24411 |
const char *key_pv = HePV(entry, key_len); |
|
2801
|
11503 |
12908 |
if (!existing || !SvOK(*existing)) { |
|
|
1 |
11502 |
if (!existing || !SvOK(*existing)) { |
|
2808
|
10100 |
1407 |
if (GIMME_V == G_ARRAY) { |
|
2810
|
0 |
10100 |
IV n = HvUSEDKEYS(dest); |
|
2812
|
10100 |
0 |
EXTEND(SP, n * 2); |
|
|
0 |
10100 |
EXTEND(SP, n * 2); |
|
2816
|
20200 |
10100 |
while ((he = hv_iternext(dest)) != NULL) { |
|
2818
|
0 |
20200 |
const char *key = HePV(he, klen); |
|
2839
|
0 |
20128 |
if (items != 2) croak("Usage: Func::Util::nvl($value, $default)"); |
|
2842
|
8010 |
12118 |
if (SvOK(val)) { |
|
2852
|
0 |
18116 |
if (items < 1) croak("Usage: Func::Util::coalesce($val, ...)"); |
|
2855
|
47329 |
1003 |
for (i = 0; i < items; i++) { |
|
2856
|
17113 |
30216 |
if (SvOK(ST(i))) { |
|
2893
|
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)"); |
|
2896
|
3027 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3027 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2904
|
2026 |
1001 |
if (items == 2) { |
|
2907
|
11097 |
1008 |
for (i = 0; i < len; i++) { |
|
2909
|
11097 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1018 |
10079 |
if (elem && SvNV(*elem) > threshold) { |
|
2918
|
2002 |
0 |
for (i = 0; i < len; i++) { |
|
2920
|
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) { |
|
2923
|
2002 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
1001 |
1001 |
if (val && SvNV(*val) > threshold) { |
|
2938
|
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)"); |
|
2941
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2949
|
2011 |
1001 |
if (items == 2) { |
|
2951
|
8034 |
1004 |
for (i = 0; i < len; i++) { |
|
2953
|
8034 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1007 |
7027 |
if (elem && SvNV(*elem) < threshold) { |
|
2961
|
1001 |
0 |
for (i = 0; i < len; i++) { |
|
2963
|
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) { |
|
2966
|
1001 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1001 |
0 |
if (val && SvNV(*val) < threshold) { |
|
2981
|
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)"); |
|
2984
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
2992
|
2011 |
1001 |
if (items == 2) { |
|
2994
|
10043 |
1004 |
for (i = 0; i < len; i++) { |
|
2996
|
10043 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1007 |
9036 |
if (elem && SvNV(*elem) == target) { |
|
3004
|
2003 |
0 |
for (i = 0; i < len; i++) { |
|
3006
|
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) { |
|
3009
|
2003 |
0 |
if (val && SvNV(*val) == target) { |
|
|
1001 |
1002 |
if (val && SvNV(*val) == target) { |
|
3024
|
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)"); |
|
3027
|
3014 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3014 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3035
|
2013 |
1001 |
if (items == 2) { |
|
3037
|
10048 |
1003 |
for (i = 0; i < len; i++) { |
|
3039
|
10048 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1010 |
9038 |
if (elem && SvNV(*elem) >= threshold) { |
|
3047
|
1002 |
0 |
for (i = 0; i < len; i++) { |
|
3049
|
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) { |
|
3052
|
1002 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
1001 |
1 |
if (val && SvNV(*val) >= threshold) { |
|
3067
|
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)"); |
|
3070
|
3009 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3009 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3078
|
2009 |
1000 |
if (items == 2) { |
|
3080
|
8024 |
1003 |
for (i = 0; i < len; i++) { |
|
3082
|
8024 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1006 |
7018 |
if (elem && SvNV(*elem) <= threshold) { |
|
3090
|
1000 |
0 |
for (i = 0; i < len; i++) { |
|
3092
|
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) { |
|
3095
|
1000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
1000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
3110
|
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)"); |
|
3113
|
2007 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2007 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3121
|
1007 |
1000 |
if (items == 2) { |
|
3123
|
2018 |
2 |
for (i = 0; i < len; i++) { |
|
3125
|
2018 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1005 |
1013 |
if (elem && SvNV(*elem) != target) { |
|
3133
|
2000 |
0 |
for (i = 0; i < len; i++) { |
|
3135
|
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) { |
|
3138
|
2000 |
0 |
if (val && SvNV(*val) != target) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) != target) { |
|
3157
|
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)"); |
|
3160
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3168
|
2011 |
1001 |
if (items == 2) { |
|
3170
|
8023 |
1005 |
for (i = len - 1; i >= 0; i--) { |
|
3172
|
8023 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1006 |
7017 |
if (elem && SvNV(*elem) > threshold) { |
|
3180
|
1001 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3182
|
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) { |
|
3185
|
1001 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
1001 |
0 |
if (val && SvNV(*val) > threshold) { |
|
3199
|
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)"); |
|
3202
|
3011 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3011 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3210
|
2010 |
1001 |
if (items == 2) { |
|
3212
|
11033 |
1003 |
for (i = len - 1; i >= 0; i--) { |
|
3214
|
11033 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1007 |
10026 |
if (elem && SvNV(*elem) < threshold) { |
|
3222
|
2001 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3224
|
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) { |
|
3227
|
2001 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1001 |
1000 |
if (val && SvNV(*val) < threshold) { |
|
3241
|
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)"); |
|
3244
|
2005 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2005 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3252
|
1005 |
1000 |
if (items == 2) { |
|
3254
|
1015 |
2 |
for (i = len - 1; i >= 0; i--) { |
|
3256
|
1015 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1003 |
12 |
if (elem && SvNV(*elem) >= threshold) { |
|
3264
|
1000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3266
|
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) { |
|
3269
|
1000 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
1000 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
3283
|
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)"); |
|
3286
|
2006 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2006 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3294
|
1006 |
1000 |
if (items == 2) { |
|
3296
|
3015 |
1 |
for (i = len - 1; i >= 0; i--) { |
|
3298
|
3015 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1005 |
2010 |
if (elem && SvNV(*elem) <= threshold) { |
|
3306
|
2000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3308
|
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) { |
|
3311
|
2000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) <= threshold) { |
|
3325
|
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)"); |
|
3328
|
2006 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2006 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3336
|
1006 |
1000 |
if (items == 2) { |
|
3338
|
3023 |
2 |
for (i = len - 1; i >= 0; i--) { |
|
3340
|
3023 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1004 |
2019 |
if (elem && SvNV(*elem) == target) { |
|
3348
|
3000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3350
|
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) { |
|
3353
|
3000 |
0 |
if (val && SvNV(*val) == target) { |
|
|
1000 |
2000 |
if (val && SvNV(*val) == target) { |
|
3367
|
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)"); |
|
3370
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3378
|
1004 |
1000 |
if (items == 2) { |
|
3380
|
2008 |
1 |
for (i = len - 1; i >= 0; i--) { |
|
3382
|
2008 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1003 |
1005 |
if (elem && SvNV(*elem) != target) { |
|
3390
|
2000 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
3392
|
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) { |
|
3395
|
2000 |
0 |
if (val && SvNV(*val) != target) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) != target) { |
|
3410
|
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)"); |
|
3413
|
3015 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3015 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3421
|
2013 |
1002 |
if (items == 2) { |
|
3423
|
14048 |
1008 |
for (i = 0; i < len; i++) { |
|
3425
|
14048 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1005 |
13043 |
if (elem && SvNV(*elem) > threshold) { |
|
3432
|
4004 |
1 |
for (i = 0; i < len; i++) { |
|
3434
|
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) { |
|
3437
|
4004 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
1001 |
3003 |
if (val && SvNV(*val) > threshold) { |
|
3450
|
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)"); |
|
3453
|
3021 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3021 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3461
|
2021 |
1000 |
if (items == 2) { |
|
3463
|
8044 |
1005 |
for (i = 0; i < len; i++) { |
|
3465
|
8044 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1016 |
7028 |
if (elem && SvNV(*elem) < threshold) { |
|
3472
|
3000 |
0 |
for (i = 0; i < len; i++) { |
|
3474
|
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) { |
|
3477
|
3000 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1000 |
2000 |
if (val && SvNV(*val) < threshold) { |
|
3490
|
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)"); |
|
3493
|
2007 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2007 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3501
|
1007 |
1000 |
if (items == 2) { |
|
3503
|
7035 |
2 |
for (i = 0; i < len; i++) { |
|
3505
|
7035 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1005 |
6030 |
if (elem && SvNV(*elem) >= threshold) { |
|
3512
|
4000 |
0 |
for (i = 0; i < len; i++) { |
|
3514
|
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) { |
|
3517
|
4000 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
1000 |
3000 |
if (val && SvNV(*val) >= threshold) { |
|
3530
|
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)"); |
|
3533
|
2005 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2005 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3541
|
1005 |
1000 |
if (items == 2) { |
|
3543
|
1016 |
2 |
for (i = 0; i < len; i++) { |
|
3545
|
1016 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1003 |
13 |
if (elem && SvNV(*elem) <= threshold) { |
|
3552
|
3000 |
0 |
for (i = 0; i < len; i++) { |
|
3554
|
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) { |
|
3557
|
3000 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
1000 |
2000 |
if (val && SvNV(*val) <= threshold) { |
|
3570
|
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)"); |
|
3573
|
3009 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3009 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3581
|
2009 |
1000 |
if (items == 2) { |
|
3583
|
11033 |
1004 |
for (i = 0; i < len; i++) { |
|
3585
|
11033 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1005 |
10028 |
if (elem && SvNV(*elem) == target) { |
|
3592
|
1000 |
0 |
for (i = 0; i < len; i++) { |
|
3594
|
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) { |
|
3597
|
1000 |
0 |
if (val && SvNV(*val) == target) { |
|
|
1000 |
0 |
if (val && SvNV(*val) == target) { |
|
3610
|
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)"); |
|
3613
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3621
|
1004 |
1000 |
if (items == 2) { |
|
3623
|
2009 |
1 |
for (i = 0; i < len; i++) { |
|
3625
|
2009 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1003 |
1006 |
if (elem && SvNV(*elem) != target) { |
|
3632
|
2000 |
0 |
for (i = 0; i < len; i++) { |
|
3634
|
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) { |
|
3637
|
2000 |
0 |
if (val && SvNV(*val) != target) { |
|
|
1000 |
1000 |
if (val && SvNV(*val) != target) { |
|
3652
|
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)"); |
|
3655
|
3013 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3013 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3663
|
3 |
3010 |
if (len == 0) XSRETURN_YES; /* vacuous truth */ |
|
3665
|
2010 |
1000 |
if (items == 2) { |
|
3667
|
8033 |
1005 |
for (i = 0; i < len; i++) { |
|
3669
|
8033 |
0 |
if (!elem || SvNV(*elem) <= threshold) { |
|
|
1005 |
7028 |
if (!elem || SvNV(*elem) <= threshold) { |
|
3676
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3678
|
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) { |
|
3683
|
4000 |
0 |
if (!val || SvNV(*val) <= threshold) { |
|
|
0 |
4000 |
if (!val || SvNV(*val) <= threshold) { |
|
3695
|
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)"); |
|
3698
|
3009 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3009 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3706
|
1 |
3008 |
if (len == 0) XSRETURN_YES; |
|
3708
|
2008 |
1000 |
if (items == 2) { |
|
3710
|
10040 |
1004 |
for (i = 0; i < len; i++) { |
|
3712
|
10040 |
0 |
if (!elem || SvNV(*elem) >= threshold) { |
|
|
1004 |
9036 |
if (!elem || SvNV(*elem) >= threshold) { |
|
3719
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3721
|
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) { |
|
3726
|
4000 |
0 |
if (!val || SvNV(*val) >= threshold) { |
|
|
0 |
4000 |
if (!val || SvNV(*val) >= threshold) { |
|
3738
|
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)"); |
|
3741
|
3019 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3019 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3749
|
0 |
3019 |
if (len == 0) XSRETURN_YES; |
|
3751
|
2017 |
1002 |
if (items == 2) { |
|
3753
|
8089 |
1013 |
for (i = 0; i < len; i++) { |
|
3755
|
8089 |
0 |
if (!elem || SvNV(*elem) < threshold) { |
|
|
1004 |
7085 |
if (!elem || SvNV(*elem) < threshold) { |
|
3762
|
4003 |
1001 |
for (i = 0; i < len; i++) { |
|
3764
|
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) { |
|
3769
|
4003 |
0 |
if (!val || SvNV(*val) < threshold) { |
|
|
1 |
4002 |
if (!val || SvNV(*val) < threshold) { |
|
3781
|
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)"); |
|
3784
|
3004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3792
|
0 |
3004 |
if (len == 0) XSRETURN_YES; |
|
3794
|
2004 |
1000 |
if (items == 2) { |
|
3796
|
11023 |
1002 |
for (i = 0; i < len; i++) { |
|
3798
|
11023 |
0 |
if (!elem || SvNV(*elem) > threshold) { |
|
|
1002 |
10021 |
if (!elem || SvNV(*elem) > threshold) { |
|
3805
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3807
|
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) { |
|
3812
|
4000 |
0 |
if (!val || SvNV(*val) > threshold) { |
|
|
0 |
4000 |
if (!val || SvNV(*val) > threshold) { |
|
3824
|
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)"); |
|
3827
|
2007 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2007 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3835
|
1 |
2006 |
if (len == 0) XSRETURN_YES; |
|
3837
|
2006 |
0 |
if (items == 2) { |
|
3839
|
5014 |
1004 |
for (i = 0; i < len; i++) { |
|
3841
|
5014 |
0 |
if (!elem || SvNV(*elem) != target) { |
|
|
1002 |
4012 |
if (!elem || SvNV(*elem) != target) { |
|
3848
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
3850
|
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) { |
|
3855
|
0 |
0 |
if (!val || SvNV(*val) != target) { |
|
|
0 |
0 |
if (!val || SvNV(*val) != target) { |
|
3867
|
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)"); |
|
3870
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3878
|
0 |
2004 |
if (len == 0) XSRETURN_YES; |
|
3880
|
2004 |
0 |
if (items == 2) { |
|
3882
|
10018 |
1002 |
for (i = 0; i < len; i++) { |
|
3884
|
10018 |
0 |
if (!elem || SvNV(*elem) == target) { |
|
|
1002 |
9016 |
if (!elem || SvNV(*elem) == target) { |
|
3891
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
3893
|
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) { |
|
3898
|
0 |
0 |
if (!val || SvNV(*val) == target) { |
|
|
0 |
0 |
if (!val || SvNV(*val) == target) { |
|
3911
|
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)"); |
|
3914
|
3011 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3011 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3922
|
2011 |
1000 |
if (items == 2) { |
|
3924
|
11039 |
1007 |
for (i = 0; i < len; i++) { |
|
3926
|
11039 |
0 |
if (elem && SvNV(*elem) > threshold) { |
|
|
1004 |
10035 |
if (elem && SvNV(*elem) > threshold) { |
|
3933
|
4000 |
1000 |
for (i = 0; i < len; i++) { |
|
3935
|
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) { |
|
3938
|
4000 |
0 |
if (val && SvNV(*val) > threshold) { |
|
|
0 |
4000 |
if (val && SvNV(*val) > threshold) { |
|
3951
|
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)"); |
|
3954
|
3010 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3010 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
3962
|
2008 |
1002 |
if (items == 2) { |
|
3964
|
8031 |
1005 |
for (i = 0; i < len; i++) { |
|
3966
|
8031 |
0 |
if (elem && SvNV(*elem) < threshold) { |
|
|
1003 |
7028 |
if (elem && SvNV(*elem) < threshold) { |
|
3973
|
4003 |
1001 |
for (i = 0; i < len; i++) { |
|
3975
|
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) { |
|
3978
|
4003 |
0 |
if (val && SvNV(*val) < threshold) { |
|
|
1 |
4002 |
if (val && SvNV(*val) < threshold) { |
|
3991
|
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)"); |
|
3994
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4002
|
2004 |
0 |
if (items == 2) { |
|
4004
|
8023 |
1002 |
for (i = 0; i < len; i++) { |
|
4006
|
8023 |
0 |
if (elem && SvNV(*elem) >= threshold) { |
|
|
1002 |
7021 |
if (elem && SvNV(*elem) >= threshold) { |
|
4013
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4015
|
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) { |
|
4018
|
0 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
|
0 |
0 |
if (val && SvNV(*val) >= threshold) { |
|
4031
|
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)"); |
|
4034
|
2004 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2004 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4042
|
2004 |
0 |
if (items == 2) { |
|
4044
|
8015 |
1002 |
for (i = 0; i < len; i++) { |
|
4046
|
8015 |
0 |
if (elem && SvNV(*elem) <= threshold) { |
|
|
1002 |
7013 |
if (elem && SvNV(*elem) <= threshold) { |
|
4053
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4055
|
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) { |
|
4058
|
0 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
|
0 |
0 |
if (val && SvNV(*val) <= threshold) { |
|
4071
|
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)"); |
|
4074
|
2008 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2008 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4082
|
2008 |
0 |
if (items == 2) { |
|
4084
|
10032 |
1005 |
for (i = 0; i < len; i++) { |
|
4086
|
10032 |
0 |
if (elem && SvNV(*elem) == target) { |
|
|
1003 |
9029 |
if (elem && SvNV(*elem) == target) { |
|
4093
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4095
|
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) { |
|
4098
|
0 |
0 |
if (val && SvNV(*val) == target) { |
|
|
0 |
0 |
if (val && SvNV(*val) == target) { |
|
4111
|
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)"); |
|
4114
|
2005 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2005 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4122
|
2005 |
0 |
if (items == 2) { |
|
4124
|
5012 |
1003 |
for (i = 0; i < len; i++) { |
|
4126
|
5012 |
0 |
if (elem && SvNV(*elem) != target) { |
|
|
1002 |
4010 |
if (elem && SvNV(*elem) != target) { |
|
4133
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4135
|
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) { |
|
4138
|
0 |
0 |
if (val && SvNV(*val) != target) { |
|
|
0 |
0 |
if (val && SvNV(*val) != target) { |
|
4151
|
0 |
3012 |
if (items != 2) croak("Usage: Func::Util::firstr(\\&block, \\@array)"); |
|
4156
|
3012 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
3012 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4159
|
3012 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
3012 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4168
|
0 |
3012 |
if (len == 0) { |
|
4173
|
3012 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4178
|
0 |
3012 |
PUSH_MULTICALL(block_cv); |
|
4180
|
10045 |
1000 |
for (i = 0; i < len; i++) { |
|
4182
|
0 |
10045 |
if (!elem) continue; |
|
4189
|
2012 |
8033 |
if (SvTRUE(*PL_stack_sp)) { |
|
4190
|
2012 |
0 |
POP_MULTICALL; |
|
4196
|
1000 |
0 |
POP_MULTICALL; |
|
4202
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
4204
|
0 |
0 |
if (!elem) continue; |
|
4209
|
0 |
0 |
PUSHMARK(SP); |
|
4212
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4224
|
0 |
2014 |
if (items != 2) croak("Usage: Func::Util::final(\\&block, \\@array)"); |
|
4229
|
2014 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
2014 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4232
|
2014 |
0 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
|
0 |
2014 |
if (!SvROK(aref) || SvTYPE(SvRV(aref)) != SVt_PVAV) { |
|
4241
|
2 |
2012 |
if (len == 0) { |
|
4246
|
2012 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4251
|
0 |
2012 |
PUSH_MULTICALL(block_cv); |
|
4254
|
8026 |
1003 |
for (i = len - 1; i >= 0; i--) { |
|
4256
|
0 |
8026 |
if (!elem) continue; |
|
4263
|
1009 |
7017 |
if (SvTRUE(*PL_stack_sp)) { |
|
4264
|
1009 |
0 |
POP_MULTICALL; |
|
4270
|
1003 |
0 |
POP_MULTICALL; |
|
4276
|
0 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
4278
|
0 |
0 |
if (!elem) continue; |
|
4283
|
0 |
0 |
PUSHMARK(SP); |
|
4286
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4298
|
0 |
13118 |
if (items < 1) croak("Usage: Func::Util::first(\\&block, @list)"); |
|
4301
|
13118 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13118 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4311
|
2 |
13116 |
if (items <= 1) { |
|
4317
|
13116 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4322
|
0 |
13116 |
PUSH_MULTICALL(block_cv); |
|
4324
|
33336 |
4 |
for (index = 1; index < items; index++) { |
|
4330
|
13112 |
20224 |
if (SvTRUE(*PL_stack_sp)) { |
|
4331
|
13112 |
0 |
POP_MULTICALL; |
|
4337
|
4 |
0 |
POP_MULTICALL; |
|
4343
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4347
|
0 |
0 |
PUSHMARK(SP); |
|
4350
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4362
|
0 |
13126 |
if (items < 1) croak("Usage: Func::Util::any(\\&block, @list)"); |
|
4365
|
13126 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13126 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4374
|
2 |
13124 |
if (items <= 1) { |
|
4379
|
13124 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4384
|
0 |
13124 |
PUSH_MULTICALL(block_cv); |
|
4386
|
33341 |
4 |
for (index = 1; index < items; index++) { |
|
4392
|
13120 |
20221 |
if (SvTRUE(*PL_stack_sp)) { |
|
4393
|
13120 |
0 |
POP_MULTICALL; |
|
4398
|
4 |
0 |
POP_MULTICALL; |
|
4403
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4407
|
0 |
0 |
PUSHMARK(SP); |
|
4410
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4421
|
0 |
13116 |
if (items < 1) croak("Usage: Func::Util::all(\\&block, @list)"); |
|
4424
|
13116 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13116 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4433
|
2 |
13114 |
if (items <= 1) { |
|
4438
|
13114 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4443
|
0 |
13114 |
PUSH_MULTICALL(block_cv); |
|
4445
|
53537 |
13108 |
for (index = 1; index < items; index++) { |
|
4451
|
6 |
53531 |
if (!SvTRUE(*PL_stack_sp)) { |
|
4452
|
6 |
0 |
POP_MULTICALL; |
|
4457
|
13108 |
0 |
POP_MULTICALL; |
|
4462
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4466
|
0 |
0 |
PUSHMARK(SP); |
|
4469
|
0 |
0 |
if (!SvTRUE(*PL_stack_sp)) { |
|
4480
|
0 |
13114 |
if (items < 1) croak("Usage: Func::Util::none(\\&block, @list)"); |
|
4483
|
13114 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
13114 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4492
|
2 |
13112 |
if (items <= 1) { |
|
4497
|
13112 |
0 |
if (!CvISXSUB(block_cv)) { |
|
4502
|
0 |
13112 |
PUSH_MULTICALL(block_cv); |
|
4504
|
53532 |
10106 |
for (index = 1; index < items; index++) { |
|
4510
|
3006 |
50526 |
if (SvTRUE(*PL_stack_sp)) { |
|
4511
|
3006 |
0 |
POP_MULTICALL; |
|
4516
|
10106 |
0 |
POP_MULTICALL; |
|
4521
|
0 |
0 |
for (index = 1; index < items; index++) { |
|
4525
|
0 |
0 |
PUSHMARK(SP); |
|
4528
|
0 |
0 |
if (SvTRUE(*PL_stack_sp)) { |
|
4548
|
0 |
6 |
if (items < 1) croak("Usage: Func::Util::first_inline(\\&block, @list)"); |
|
4551
|
6 |
0 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
|
0 |
6 |
if (!SvROK(block) || SvTYPE(SvRV(block)) != SVt_PVCV) { |
|
4557
|
1 |
5 |
if (items == 1) { |
|
4562
|
0 |
5 |
if (CvISXSUB(the_cv)) { |
|
4574
|
0 |
5 |
PUSH_MULTICALL(the_cv); |
|
4579
|
24 |
1 |
for (i = 0; i < num_args; i++) { |
|
4586
|
4 |
20 |
if (SvTRUE(*PL_stack_sp)) { |
|
4588
|
4 |
0 |
POP_MULTICALL; |
|
4597
|
1 |
0 |
POP_MULTICALL; |
|
4611
|
0 |
17123 |
if (items != 1) croak("Usage: Func::Util::is_ref($value)"); |
|
4612
|
14115 |
3008 |
ST(0) = SvROK(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4618
|
0 |
17132 |
if (items != 1) croak("Usage: Func::Util::is_array($value)"); |
|
4620
|
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; |
|
4626
|
0 |
17131 |
if (items != 1) croak("Usage: Func::Util::is_hash($value)"); |
|
4628
|
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; |
|
4634
|
0 |
17117 |
if (items != 1) croak("Usage: Func::Util::is_code($value)"); |
|
4636
|
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; |
|
4642
|
0 |
17118 |
if (items != 1) croak("Usage: Func::Util::is_defined($value)"); |
|
4643
|
14113 |
3005 |
ST(0) = SvOK(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4653
|
0 |
12016 |
if (items != 1) croak("Usage: Func::Util::is_empty($value)"); |
|
4655
|
2002 |
10014 |
if (!SvOK(sv)) { |
|
4660
|
4002 |
6012 |
ST(0) = len == 0 ? &PL_sv_yes : &PL_sv_no; |
|
4667
|
0 |
19124 |
if (items != 2) croak("Usage: Func::Util::starts_with($string, $prefix)"); |
|
4672
|
18122 |
1002 |
if (!SvOK(str_sv) || !SvOK(prefix_sv)) { |
|
|
1 |
18121 |
if (!SvOK(str_sv) || !SvOK(prefix_sv)) { |
|
4681
|
3002 |
15119 |
if (prefix_len > str_len) { |
|
4683
|
1002 |
14117 |
} else if (prefix_len == 0) { |
|
4686
|
12113 |
2004 |
ST(0) = memcmp(str, prefix, prefix_len) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
4693
|
0 |
19122 |
if (items != 2) croak("Usage: Func::Util::ends_with($string, $suffix)"); |
|
4698
|
18120 |
1002 |
if (!SvOK(str_sv) || !SvOK(suffix_sv)) { |
|
|
1 |
18119 |
if (!SvOK(str_sv) || !SvOK(suffix_sv)) { |
|
4707
|
3002 |
15117 |
if (suffix_len > str_len) { |
|
4709
|
1002 |
14115 |
} else if (suffix_len == 0) { |
|
4713
|
12111 |
2004 |
ST(0) = memcmp(str_end, suffix, suffix_len) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
4721
|
0 |
2000 |
if (items != 2) croak("Usage: Func::Util::count($string, $substring)"); |
|
4726
|
2000 |
0 |
if (!SvOK(str_sv) || !SvOK(needle_sv)) { |
|
|
0 |
2000 |
if (!SvOK(str_sv) || !SvOK(needle_sv)) { |
|
4735
|
2000 |
0 |
if (needle_len == 0 || needle_len > str_len) { |
|
|
2000 |
0 |
if (needle_len == 0 || needle_len > str_len) { |
|
4745
|
0 |
0 |
while (remaining >= needle_len) { |
|
4747
|
0 |
0 |
if (!found) break; |
|
4761
|
0 |
5026 |
if (items != 3) croak("Usage: Func::Util::replace_all($string, $old, $new)"); |
|
4768
|
0 |
5026 |
if (!SvOK(str_sv)) { |
|
4779
|
5025 |
1 |
if (old_len == 0 || old_len > str_len) { |
|
|
1001 |
4024 |
if (old_len == 0 || old_len > str_len) { |
|
4790
|
9052 |
2009 |
while (remaining >= old_len) { |
|
4792
|
2015 |
7037 |
if (!found) break; |
|
4798
|
1002 |
3022 |
if (count == 0) { |
|
4815
|
8050 |
2009 |
while (remaining >= old_len) { |
|
4817
|
1013 |
7037 |
if (!found) break; |
|
4821
|
2025 |
5012 |
if (before_len > 0) { |
|
4827
|
5035 |
2002 |
if (new_len > 0) { |
|
4837
|
1016 |
2006 |
if (remaining > 0) { |
|
4852
|
0 |
0 |
if (items != 2) croak("Usage: Func::Util::before($string, $delimiter)"); |
|
4857
|
0 |
0 |
if (!SvOK(str_sv)) { |
|
4866
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
4872
|
0 |
0 |
if (found) { |
|
4883
|
0 |
0 |
if (items != 2) croak("Usage: Func::Util::after($string, $delimiter)"); |
|
4888
|
0 |
0 |
if (!SvOK(str_sv)) { |
|
4897
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
|
0 |
0 |
if (delim_len == 0 || delim_len > str_len) { |
|
4903
|
0 |
0 |
if (found) { |
|
4918
|
0 |
24129 |
if (items != 1) croak("Usage: Func::Util::is_true($value)"); |
|
4919
|
16123 |
8006 |
ST(0) = SvTRUE(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4925
|
0 |
22118 |
if (items != 1) croak("Usage: Func::Util::is_false($value)"); |
|
4926
|
4004 |
18114 |
ST(0) = SvTRUE(ST(0)) ? &PL_sv_no : &PL_sv_yes; |
|
4932
|
0 |
30119 |
if (items != 1) croak("Usage: Func::Util::bool($value)"); |
|
4933
|
21115 |
9004 |
ST(0) = SvTRUE(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4943
|
0 |
19155 |
if (items != 1) croak("Usage: Func::Util::is_num($value)"); |
|
4945
|
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; |
|
4951
|
0 |
17120 |
if (items != 1) croak("Usage: Func::Util::is_int($value)"); |
|
4953
|
14106 |
3014 |
if (SvIOK(sv)) { |
|
4955
|
3009 |
5 |
} else if (SvNOK(sv)) { |
|
4957
|
1003 |
2006 |
ST(0) = (nv == (NV)(IV)nv) ? &PL_sv_yes : &PL_sv_no; |
|
4958
|
2 |
3 |
} else if (looks_like_number(sv)) { |
|
4963
|
4 |
2 |
for (i = 0; i < len; i++) { |
|
4964
|
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') { |
|
4969
|
0 |
2 |
if (has_dot) { |
|
4971
|
0 |
0 |
ST(0) = (nv == (NV)(IV)nv) ? &PL_sv_yes : &PL_sv_no; |
|
4983
|
0 |
6011 |
if (items != 1) croak("Usage: Func::Util::is_blessed($value)"); |
|
4984
|
2005 |
4006 |
ST(0) = sv_isobject(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
4990
|
0 |
4009 |
if (items != 1) croak("Usage: Func::Util::is_scalar_ref($value)"); |
|
4992
|
4006 |
3 |
if (SvROK(sv)) { |
|
4995
|
2003 |
2003 |
ST(0) = (type < SVt_PVAV) ? &PL_sv_yes : &PL_sv_no; |
|
5004
|
0 |
6009 |
if (items != 1) croak("Usage: Func::Util::is_regex($value)"); |
|
5005
|
2004 |
4005 |
ST(0) = SvRXOK(ST(0)) ? &PL_sv_yes : &PL_sv_no; |
|
5011
|
0 |
6008 |
if (items != 1) croak("Usage: Func::Util::is_glob($value)"); |
|
5012
|
2003 |
4005 |
ST(0) = (SvTYPE(ST(0)) == SVt_PVGV) ? &PL_sv_yes : &PL_sv_no; |
|
5018
|
0 |
8017 |
if (items != 1) croak("Usage: Func::Util::is_string($value)"); |
|
5020
|
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; |
|
5030
|
0 |
15123 |
if (items != 1) croak("Usage: Func::Util::is_positive($value)"); |
|
5032
|
2 |
15121 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
2 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
5034
|
13111 |
2010 |
ST(0) = (nv > 0) ? &PL_sv_yes : &PL_sv_no; |
|
5043
|
0 |
13122 |
if (items != 1) croak("Usage: Func::Util::is_negative($value)"); |
|
5045
|
2 |
13120 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
0 |
2 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
5047
|
13111 |
9 |
ST(0) = (nv < 0) ? &PL_sv_yes : &PL_sv_no; |
|
5056
|
0 |
13123 |
if (items != 1) croak("Usage: Func::Util::is_zero($value)"); |
|
5058
|
4 |
13119 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
|
2 |
2 |
if (SvNIOK(sv) || looks_like_number(sv)) { |
|
5060
|
13110 |
11 |
ST(0) = (nv == 0) ? &PL_sv_yes : &PL_sv_no; |
|
5073
|
0 |
18156 |
if (items != 1) croak("Usage: Func::Util::is_even($value)"); |
|
5075
|
18144 |
12 |
if (SvIOK(sv)) { |
|
5076
|
15123 |
3021 |
ST(0) = (SvIVX(sv) & 1) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5077
|
5 |
7 |
} else if (SvNIOK(sv)) { |
|
5079
|
3 |
2 |
if (nv == (NV)(IV)nv) { |
|
5080
|
2 |
1 |
ST(0) = ((IV)nv & 1) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5084
|
2 |
5 |
} else if (looks_like_number(sv)) { |
|
5085
|
2 |
0 |
ST(0) = (SvIV(sv) & 1) == 0 ? &PL_sv_yes : &PL_sv_no; |
|
5094
|
0 |
18155 |
if (items != 1) croak("Usage: Func::Util::is_odd($value)"); |
|
5096
|
18144 |
11 |
if (SvIOK(sv)) { |
|
5097
|
14124 |
4020 |
ST(0) = (SvIVX(sv) & 1) == 1 ? &PL_sv_yes : &PL_sv_no; |
|
5098
|
5 |
6 |
} else if (SvNIOK(sv)) { |
|
5100
|
3 |
2 |
if (nv == (NV)(IV)nv) { |
|
5101
|
2 |
1 |
ST(0) = ((IV)nv & 1) == 1 ? &PL_sv_yes : &PL_sv_no; |
|
5105
|
2 |
4 |
} else if (looks_like_number(sv)) { |
|
5106
|
2 |
0 |
ST(0) = (SvIV(sv) & 1) == 1 ? &PL_sv_yes : &PL_sv_no; |
|
5115
|
0 |
15070 |
if (items != 3) croak("Usage: Func::Util::is_between($value, $min, $max)"); |
|
5120
|
5 |
15065 |
if (SvNIOK(val_sv) || looks_like_number(val_sv)) { |
|
|
1 |
4 |
if (SvNIOK(val_sv) || looks_like_number(val_sv)) { |
|
5124
|
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; |
|
5137
|
0 |
4008 |
if (items != 1) croak("Usage: Func::Util::is_empty_array($arrayref)"); |
|
5139
|
4005 |
3 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
4004 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5141
|
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; |
|
5150
|
0 |
5008 |
if (items != 1) croak("Usage: Func::Util::is_empty_hash($hashref)"); |
|
5152
|
5005 |
3 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
|
5004 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
5154
|
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; |
|
5163
|
0 |
14126 |
if (items != 1) croak("Usage: Func::Util::array_len($arrayref)"); |
|
5165
|
13124 |
1002 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
13123 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5167
|
0 |
13123 |
ST(0) = sv_2mortal(newSViv(AvFILL(av) + 1)); |
|
5176
|
0 |
4018 |
if (items != 1) croak("Usage: Func::Util::hash_size($hashref)"); |
|
5178
|
3016 |
1002 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
|
3015 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV) { |
|
5180
|
0 |
3015 |
ST(0) = sv_2mortal(newSViv(HvKEYS(hv))); |
|
5189
|
0 |
13114 |
if (items != 1) croak("Usage: Func::Util::array_first($arrayref)"); |
|
5191
|
13112 |
2 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
13111 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5193
|
0 |
13111 |
if (AvFILL(av) >= 0) { |
|
|
12110 |
1001 |
if (AvFILL(av) >= 0) { |
|
5195
|
12110 |
0 |
ST(0) = elem ? *elem : &PL_sv_undef; |
|
5207
|
0 |
13113 |
if (items != 1) croak("Usage: Func::Util::array_last($arrayref)"); |
|
5209
|
13111 |
2 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
|
13110 |
1 |
if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVAV) { |
|
5211
|
0 |
13110 |
IV last_idx = AvFILL(av); |
|
5212
|
12109 |
1001 |
if (last_idx >= 0) { |
|
5214
|
12109 |
0 |
ST(0) = elem ? *elem : &PL_sv_undef; |
|
5230
|
0 |
20141 |
if (items != 1) croak("Usage: Func::Util::trim($string)"); |
|
5233
|
1001 |
19140 |
if (!SvOK(sv)) { |
|
5244
|
46406 |
4004 |
while (start < end && isSPACE(*start)) { |
|
|
31270 |
15136 |
while (start < end && isSPACE(*start)) { |
|
5249
|
43397 |
4004 |
while (end > start && isSPACE(*(end - 1))) { |
|
|
28261 |
15136 |
while (end > start && isSPACE(*(end - 1))) { |
|
5259
|
0 |
4013 |
if (items != 1) croak("Usage: Func::Util::ltrim($string)"); |
|
5262
|
1 |
4012 |
if (!SvOK(sv)) { |
|
5272
|
8029 |
2 |
while (start < end && isSPACE(*start)) { |
|
|
4019 |
4010 |
while (start < end && isSPACE(*start)) { |
|
5282
|
0 |
4013 |
if (items != 1) croak("Usage: Func::Util::rtrim($string)"); |
|
5285
|
1 |
4012 |
if (!SvOK(sv)) { |
|
5294
|
8024 |
2 |
while (end > str && isSPACE(*(end - 1))) { |
|
|
4014 |
4010 |
while (end > str && isSPACE(*(end - 1))) { |
|
5308
|
0 |
10028 |
if (items != 2) croak("Usage: Func::Util::maybe($value, $then)"); |
|
5311
|
8023 |
2005 |
if (SvOK(val)) { |
|
5325
|
0 |
21131 |
if (items != 1) croak("Usage: Func::Util::sign($number)"); |
|
5328
|
5 |
21126 |
if (!SvNIOK(sv) && !looks_like_number(sv)) { |
|
|
2 |
3 |
if (!SvNIOK(sv) && !looks_like_number(sv)) { |
|
5334
|
4011 |
17118 |
if (nv > 0) { |
|
5336
|
14113 |
3005 |
} else if (nv < 0) { |
|
5346
|
0 |
15116 |
if (items != 2) croak("Usage: Func::Util::min2($a, $b)"); |
|
5351
|
15112 |
4 |
ST(0) = a <= b ? ST(0) : ST(1); |
|
5357
|
0 |
15116 |
if (items != 2) croak("Usage: Func::Util::max2($a, $b)"); |
|
5362
|
1007 |
14109 |
ST(0) = a >= b ? ST(0) : ST(1); |
|
5374
|
0 |
11130 |
if (items != 2) croak("Usage: Func::Util::any_cb(\\@list, $callback_name)"); |
|
5377
|
11128 |
2 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
1 |
11127 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5386
|
2 |
11125 |
if (!cb) { |
|
5389
|
1000 |
10125 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1000 |
if (!cb->predicate && !cb->perl_callback) { |
|
5396
|
10125 |
1000 |
if (cb->predicate) { |
|
5398
|
35172 |
2 |
for (i = 0; i < len; i++) { |
|
5400
|
35172 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
10123 |
25049 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5404
|
1000 |
0 |
} else if (cb->perl_callback) { |
|
5406
|
7000 |
0 |
for (i = 0; i < len; i++) { |
|
5408
|
0 |
7000 |
if (!svp) continue; |
|
5419
|
0 |
7000 |
PUSHMARK(SP); |
|
5420
|
0 |
7000 |
XPUSHs(*svp); |
|
5426
|
7000 |
0 |
if (count > 0) { |
|
5432
|
7000 |
0 |
FREETMPS; |
|
5436
|
1000 |
6000 |
if (matches) { |
|
5448
|
0 |
3128 |
if (items != 2) croak("Usage: Func::Util::all_cb(\\@list, $callback_name)"); |
|
5451
|
3128 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
3128 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5460
|
1 |
3127 |
if (!cb) { |
|
5463
|
0 |
3127 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
0 |
if (!cb->predicate && !cb->perl_callback) { |
|
5471
|
5 |
3122 |
if (len == 0) { |
|
5475
|
3122 |
0 |
if (cb->predicate) { |
|
5476
|
1019114 |
2114 |
for (i = 0; i < len; i++) { |
|
5478
|
1019114 |
0 |
if (!svp || !cb->predicate(aTHX_ *svp)) { |
|
|
1008 |
1018106 |
if (!svp || !cb->predicate(aTHX_ *svp)) { |
|
5482
|
0 |
0 |
} else if (cb->perl_callback) { |
|
5483
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
5485
|
0 |
0 |
if (!svp) { XSRETURN_NO; } |
|
5492
|
0 |
0 |
PUSHMARK(SP); |
|
5493
|
0 |
0 |
XPUSHs(*svp); |
|
5497
|
0 |
0 |
if (count > 0) { |
|
5502
|
0 |
0 |
FREETMPS; LEAVE; |
|
5504
|
0 |
0 |
if (!matches) { |
|
5516
|
0 |
2012 |
if (items != 2) croak("Usage: Func::Util::none_cb(\\@list, $callback_name)"); |
|
5519
|
2012 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
2012 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5528
|
1 |
2011 |
if (!cb) { |
|
5531
|
0 |
2011 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
0 |
if (!cb->predicate && !cb->perl_callback) { |
|
5538
|
2011 |
0 |
if (cb->predicate) { |
|
5539
|
13021 |
1006 |
for (i = 0; i < len; i++) { |
|
5541
|
13021 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
1005 |
12016 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5545
|
0 |
0 |
} else if (cb->perl_callback) { |
|
5546
|
0 |
0 |
for (i = 0; i < len; i++) { |
|
5548
|
0 |
0 |
if (!svp) continue; |
|
5555
|
0 |
0 |
PUSHMARK(SP); |
|
5556
|
0 |
0 |
XPUSHs(*svp); |
|
5560
|
0 |
0 |
if (count > 0) { |
|
5565
|
0 |
0 |
FREETMPS; LEAVE; |
|
5567
|
0 |
0 |
if (matches) { |
|
5579
|
0 |
5043 |
if (items != 2) croak("Usage: Func::Util::first_cb(\\@list, $callback_name)"); |
|
5582
|
5043 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
5043 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5591
|
1 |
5042 |
if (!cb) { |
|
5594
|
1010 |
4032 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1010 |
if (!cb->predicate && !cb->perl_callback) { |
|
5601
|
4032 |
1010 |
if (cb->predicate) { |
|
5602
|
10080 |
2 |
for (i = 0; i < len; i++) { |
|
5604
|
10080 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
4030 |
6050 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5609
|
1010 |
0 |
} else if (cb->perl_callback) { |
|
5610
|
7012 |
2 |
for (i = 0; i < len; i++) { |
|
5612
|
0 |
7012 |
if (!svp) continue; |
|
5619
|
0 |
7012 |
PUSHMARK(SP); |
|
5620
|
0 |
7012 |
XPUSHs(*svp); |
|
5624
|
7012 |
0 |
if (count > 0) { |
|
5629
|
7012 |
0 |
FREETMPS; LEAVE; |
|
5631
|
1008 |
6004 |
if (matches) { |
|
5644
|
0 |
3037 |
if (items != 2) croak("Usage: Func::Util::grep_cb(\\@list, $callback_name)"); |
|
5647
|
3037 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
3037 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5656
|
1 |
3036 |
if (!cb) { |
|
5659
|
12 |
3024 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
12 |
if (!cb->predicate && !cb->perl_callback) { |
|
5671
|
3024 |
12 |
if (cb->predicate) { |
|
5672
|
27151 |
3024 |
for (i = 0; i < len; i++) { |
|
5674
|
27151 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
13075 |
14076 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5679
|
12 |
0 |
} else if (cb->perl_callback) { |
|
5680
|
76 |
12 |
for (i = 0; i < len; i++) { |
|
5682
|
0 |
76 |
if (!svp) continue; |
|
5690
|
0 |
76 |
PUSHMARK(SP); |
|
5691
|
0 |
76 |
XPUSHs(elem); |
|
5695
|
76 |
0 |
if (call_count > 0) { |
|
5700
|
76 |
0 |
FREETMPS; LEAVE; |
|
5702
|
39 |
37 |
if (matches) { |
|
5711
|
13114 |
3036 |
for (i = 0; i < count; i++) { |
|
5713
|
13114 |
0 |
if (svp) { |
|
5714
|
0 |
13114 |
XPUSHs(sv_2mortal(SvREFCNT_inc(*svp))); |
|
5725
|
0 |
6165 |
if (items != 2) croak("Usage: Func::Util::count_cb(\\@list, $callback_name)"); |
|
5728
|
6165 |
0 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
6165 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5737
|
1 |
6164 |
if (!cb) { |
|
5740
|
1004 |
5160 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1004 |
if (!cb->predicate && !cb->perl_callback) { |
|
5748
|
5160 |
1004 |
if (cb->predicate) { |
|
5749
|
1041389 |
5160 |
for (i = 0; i < len; i++) { |
|
5751
|
1041389 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
1022177 |
19212 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5755
|
1004 |
0 |
} else if (cb->perl_callback) { |
|
5756
|
9029 |
1004 |
for (i = 0; i < len; i++) { |
|
5758
|
0 |
9029 |
if (!svp) continue; |
|
5765
|
0 |
9029 |
PUSHMARK(SP); |
|
5766
|
0 |
9029 |
XPUSHs(*svp); |
|
5770
|
9029 |
0 |
if (call_count > 0) { |
|
5775
|
9029 |
0 |
FREETMPS; LEAVE; |
|
5777
|
3010 |
6019 |
if (matches) { |
|
5789
|
0 |
2013 |
if (items != 2) croak("Usage: Func::Util::partition_cb(\\@list, $callback_name)"); |
|
5792
|
2012 |
1 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
2012 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5801
|
1 |
2011 |
if (!cb) { |
|
5804
|
2 |
2009 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
2 |
if (!cb->predicate && !cb->perl_callback) { |
|
5815
|
2009 |
2 |
if (cb->predicate) { |
|
5816
|
18040 |
2009 |
for (i = 0; i < len; i++) { |
|
5818
|
0 |
18040 |
if (!svp) continue; |
|
5819
|
11020 |
7020 |
if (cb->predicate(aTHX_ *svp)) { |
|
5825
|
2 |
0 |
} else if (cb->perl_callback) { |
|
5826
|
9 |
2 |
for (i = 0; i < len; i++) { |
|
5828
|
0 |
9 |
if (!svp) continue; |
|
5838
|
0 |
9 |
PUSHMARK(SP); |
|
5839
|
0 |
9 |
XPUSHs(*svp); |
|
5845
|
9 |
0 |
if (call_count > 0) { |
|
5851
|
9 |
0 |
FREETMPS; |
|
5854
|
4 |
5 |
if (matches) { |
|
5871
|
0 |
3019 |
if (items != 2) croak("Usage: Func::Util::final_cb(\\@list, $callback_name)"); |
|
5874
|
3018 |
1 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
|
0 |
3018 |
if (!SvROK(list_sv) || SvTYPE(SvRV(list_sv)) != SVt_PVAV) { |
|
5883
|
1 |
3017 |
if (!cb) { |
|
5886
|
1 |
3016 |
if (!cb->predicate && !cb->perl_callback) { |
|
|
0 |
1 |
if (!cb->predicate && !cb->perl_callback) { |
|
5893
|
3016 |
1 |
if (cb->predicate) { |
|
5895
|
10033 |
6 |
for (i = len - 1; i >= 0; i--) { |
|
5897
|
10033 |
0 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
|
3010 |
7023 |
if (svp && cb->predicate(aTHX_ *svp)) { |
|
5902
|
1 |
0 |
} else if (cb->perl_callback) { |
|
5904
|
1 |
0 |
for (i = len - 1; i >= 0; i--) { |
|
5906
|
0 |
1 |
if (!svp) continue; |
|
5913
|
0 |
1 |
PUSHMARK(SP); |
|
5914
|
0 |
1 |
XPUSHs(*svp); |
|
5918
|
1 |
0 |
if (count > 0) { |
|
5923
|
1 |
0 |
FREETMPS; LEAVE; |
|
5925
|
1 |
0 |
if (matches) { |
|
5938
|
0 |
20 |
if (items != 2) croak("Usage: Func::Util::register_callback($name, \\&coderef)"); |
|
5944
|
20 |
0 |
if (!SvROK(coderef) || SvTYPE(SvRV(coderef)) != SVt_PVCV) { |
|
|
0 |
20 |
if (!SvROK(coderef) || SvTYPE(SvRV(coderef)) != SVt_PVCV) { |
|
5954
|
3 |
17 |
if (get_registered_callback(aTHX_ name)) { |
|
5975
|
0 |
6018 |
if (items != 1) croak("Usage: Func::Util::has_callback($name)"); |
|
5980
|
4014 |
2004 |
if (has_callback(aTHX_ name)) { |
|
6027
|
0 |
15 |
if (items != 2) |
|
6035
|
14 |
1 |
if (!SvROK(cv_sv) || SvTYPE(SvRV(cv_sv)) != SVt_PVCV) |
|
|
2 |
12 |
if (!SvROK(cv_sv) || SvTYPE(SvRV(cv_sv)) != SVt_PVCV) |
|
6039
|
1 |
11 |
if (hv_exists(g_export_hash, name, name_len)) |
|
6057
|
0 |
17 |
if (items != 1) |
|
6063
|
14 |
3 |
if (hv_exists(g_export_hash, name, name_len)) { |
|
6079
|
354 |
3 |
while ((entry = hv_iternext(g_export_hash))) { |
|
6098
|
0 |
7 |
if (!g_export_hash) { |
|
6103
|
0 |
7 |
if (hv_exists(g_export_hash, name, name_len)) { |
|
6275
|
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)); |
|
6286
|
456 |
83 |
for (i = 1; i < items; i++) { |
|
6290
|
454 |
2 |
if (!entry_sv || !*entry_sv) { |
|
|
0 |
454 |
if (!entry_sv || !*entry_sv) { |
|
6297
|
446 |
8 |
if (entry->xs_func) { |
|
6307
|
8 |
0 |
} else if (entry->perl_cv) { |
|
6310
|
8 |
0 |
if (gv) { |
|
6507
|
0 |
53 |
Newxz(g_memos, g_memo_size, MemoizedFunc); |
|
6511
|
0 |
53 |
Newxz(g_lazies, g_lazy_size, LazyValue); |
|
6515
|
0 |
53 |
Newxz(g_always_values, g_always_size, SV*); |
|
6519
|
0 |
53 |
Newxz(g_onces, g_once_size, OnceFunc); |
|
6523
|
0 |
53 |
Newxz(g_partials, g_partial_size, PartialFunc); |