Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- I have this function:
- ```perl6
- method set_sort_func (
- &sort_func (GtkListBoxRow $a, GtkListBoxRow $b, gpointer $data),
- gpointer $user_data = gpointer,
- GDestroyNotify $destroy = GDestroyNotify
- )
- ```
- And I am calling it like this:
- ```perl6
- $listbox.set_sort_func(-> $a, $b {
- %messages{$a}<data><time> <=> %messages{$b}<data><time>
- });
- ```
- But I'm getting the following error message:
- ```
- Cannot unpack or Capture `&sort_func`.
- To create a Capture, add parentheses: \(...)
- If unpacking in a signature, perhaps you needlessly used parentheses? -> ($x) {} vs. -> $x {}
- or missed `:` in signature unpacking? -> &c:(Int) {}
- in method set_sort_func at /home/cbwood/Projects/p6-GtkPlus/lib/GTK/ListBox.pm6 (GTK::ListBox) line 259
- in block <unit> at t/41-listbox.t line 151
- ```
- I've tried many variations of the above, including changing how the call was made, how the sub was declared:
- *VARIANT #1*
- Defining a sub and then passing it off to the routine:
- Parameter:
- ```
- &sort_func:(GtkListBoxRow $a, GtkListBoxRow $b, gpointer $data)"
- ```
- Sub definition:
- ```
- sub sort-func($a, $b) {
- %messages{$a}<data><time> <=> %messages{$b}<data><time>
- };
- ```
- Invocation:
- ```
- $listbox.set_sort_func(&sort-func);
- ```
- Error message:
- ```
- Constraint type check failed in binding to parameter '&sort_func'; expected anonymous constraint to be met but got Sub (sub sort-func ($a, $b...)
- ```
- I've tried other ways, but I always keep get something similar to the above error message. What is the best way to pass a Perl func off to subroutine that wrapps the C call?
Add Comment
Please, Sign In to add comment